ITK  5.4.0
Insight Toolkit
itkConceptChecking.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * https://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 /*=========================================================================
19  *
20  * Portions of this file are subject to the VTK Toolkit Version 3 copyright.
21  *
22  * Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
23  *
24  * For complete copyright, license and disclaimer of warranty information
25  * please refer to the NOTICE file at the top of the ITK source tree.
26  *
27  *=========================================================================*/
28 #ifndef itkConceptChecking_h
29 #define itkConceptChecking_h
30 
31 #include "itkPixelTraits.h"
32 #include "itkNumericTraits.h"
33 #include <iostream>
34 
36 #ifndef ITK_CONCEPT_NO_CHECKING
37 # if defined(_MSC_VER) && !defined(__ICL)
38 # define ITK_CONCEPT_IMPLEMENTATION_VTABLE
39 // TST_RMV_20100730 #elif defined(__SUNPRO_CC)
40 // TST_RMV_20100730 #define ITK_CONCEPT_IMPLEMENTATION_VTABLE
41 # else
42 # define ITK_CONCEPT_IMPLEMENTATION_STANDARD
43 # endif
44 #endif
45 
47 #if defined(ITK_CONCEPT_IMPLEMENTATION_STANDARD)
48 
56 // Leave ()'s off the sizeof to force the caller to pass them in the
57 // concept argument of the itkConceptMacro. This is necessary because
58 // the argument may contain commas.
59 # define itkConceptConstraintsMacro() \
60  template <void (Constraints::*)()> \
61  struct Enforcer \
62  {}; \
63  using EnforcerInstantiation = Enforcer<&Constraints::constraints>; \
64  ITK_MACROEND_NOOP_STATEMENT
65 # define itkConceptMacro(name, concept) \
66  enum \
67  { \
68  name = sizeof concept \
69  }; \
70  ITK_MACROEND_NOOP_STATEMENT
71 
72 #elif defined(ITK_CONCEPT_IMPLEMENTATION_VTABLE)
73 
79 # define itkConceptConstraintsMacro() \
80  virtual void Enforcer() { &Constraints::constraints; }
81 # define itkConceptMacro(name, concept) \
82  enum \
83  { \
84  name = sizeof concept \
85  }
86 
88 #elif defined(ITK_CONCEPT_IMPLEMENTATION_CALL)
89 
91 # define itkConceptConstraintsMacro()
92 # define itkConceptMacro(name, concept) \
93  enum \
94  { \
95  name = 0 \
96  }
97 
98 #else
99 
101 # define itkConceptConstraintsMacro()
102 # define itkConceptMacro(name, concept) \
103  enum \
104  { \
105  name = 0 \
106  }
107 
108 #endif
109 
110 namespace itk
111 {
114 namespace Concept
115 {
116 
124 namespace Detail
125 {
126 template <typename T>
128 {};
129 template <int>
131 {};
132 template <unsigned int>
134 {};
135 template <bool>
137 {};
138 
144 template <typename T>
145 inline void IgnoreUnusedVariable(T)
146 {}
147 
153 template <typename T>
154 void
156 {
157  bool x = t;
158 
160 }
161 } // namespace Detail
162 
164 template <typename T>
166 {
167  struct Constraints
168  {
169  void
171  {
172  T a;
173 
175  }
176  };
177 
179 };
180 
182 template <typename T>
184 {
185  struct Constraints
186  {
187  void
189  {
190  T a(b);
191  T * p = &a;
196  }
197 
198  void
199  const_constraints(const T & a)
200  {
201  T c(a);
202  const T * p = &a;
203 
206  }
207 
208  T b;
209  };
210 
212 };
213 
215 template <typename T1, typename T2>
217 {
218  struct Constraints
219  {
220  void
222  {
223  auto b = static_cast<T2>(a);
224 
226  }
227 
228  T1 a;
229  };
231 };
232 
234 template <typename T>
236 {
237  struct Constraints
238  {
239  void
241  {
242  T x = a;
244  }
247  void
248  const_constraints(const T & b)
249  {
250  a = b;
251  }
252 
253  T a;
254  };
255 
257 };
258 
261 template <typename T1, typename T2 = T1>
263 {
264  struct Constraints
265  {
266  void
268  {
271  }
274  T1 a;
275  T2 b;
276  };
277 
279 };
280 
283 template <typename T1, typename T2 = T1>
285 {
286  struct Constraints
287  {
288  void
290  {
293  }
296  T1 a;
297  T2 b;
298  };
299 
301 };
302 
305 template <typename T1, typename T2 = T1>
307 {
308  struct Constraints
309  {
310  void
312  {
313  CLANG_PRAGMA_PUSH
314  CLANG_SUPPRESS_Wfloat_equal Detail::RequireBooleanExpression(a == b);
316  CLANG_PRAGMA_POP
317  }
320  T1 a;
321  T2 b;
322  };
323 
325 };
326 
329 template <typename T1, typename T2 = T1>
331 {
332  struct Constraints
333  {
334  void
336  {
341  CLANG_PRAGMA_PUSH
342  CLANG_SUPPRESS_Wfloat_equal Detail::RequireBooleanExpression(a == b);
344  CLANG_PRAGMA_POP
345  }
348  T1 a;
349  T2 b;
350  };
351 
353 };
354 
357 template <typename T1, typename T2 = T1, typename T3 = T1>
359 {
360  struct Constraints
361  {
362  void
364  {
365  a = static_cast<T3>(b + c);
366  a = static_cast<T3>(b - c);
368  }
371  void
372  const_constraints(const T1 & d, const T2 & e)
373  {
374  a = static_cast<T3>(d + e);
375  a = static_cast<T3>(d - e);
376  }
377 
378  T3 a;
379  T1 b;
380  T2 c;
381  };
382 
384 };
385 
386 
389 template <typename T1, typename T2 = T1>
391 {
392  struct Constraints
393  {
394  void
396  {
397  a += c;
398  a -= c;
400  }
403  void
404  const_constraints(const T1 & d)
405  {
406  a += d;
407  a -= d;
408  }
409 
410  T2 a;
411  T1 c;
412  };
413 
415 };
416 
418 template <typename T1, typename T2 = T1, typename T3 = T1>
420 {
421  struct Constraints
422  {
423  void
425  {
426  a = static_cast<T3>(b * c);
428  }
431  void
432  const_constraints(const T1 & d, const T2 & e)
433  {
434  a = static_cast<T3>(d * e);
435  }
436 
437  T3 a;
438  T1 b;
439  T2 c;
440  };
442 };
443 
445 template <typename T1, typename T2 = T1>
447 {
448  struct Constraints
449  {
450  void
452  {
453  a *= b;
455  }
458  void
459  const_constraints(const T1 & d)
460  {
461  a *= d;
462  }
463 
464  T2 a;
465  T1 b;
466  };
467 
469 };
470 
472 template <typename T1, typename T2 = T1, typename T3 = T1>
474 {
475  struct Constraints
476  {
477  void
479  {
480  a = static_cast<T3>(b / c);
482  }
485  void
486  const_constraints(const T1 & d, const T2 & e)
487  {
488  a = static_cast<T3>(d / e);
489  }
490 
491  T3 a;
492  T1 b;
493  T2 c;
494  };
495 
497 };
498 
499 
501 template <typename T1, typename T2 = T1>
503 {
504  struct Constraints
505  {
506  void
508  {
509  a /= c;
511  }
514  void
515  const_constraints(const T1 & d)
516  {
517  a /= d;
518  }
519 
520  T1 c;
521  T2 a;
522  };
523 
525 };
526 
527 
530 template <typename T1, typename T2 = T1, typename T3 = T1>
532 {
533  struct Constraints
534  {
535  void
537  {
538  a = static_cast<T3>(b & c);
539  a = static_cast<T3>(b | c);
540  a = static_cast<T3>(b ^ c);
541  a &= static_cast<T3>(c);
542  a |= static_cast<T3>(c);
543  a ^= static_cast<T3>(c);
545  }
548  void
549  const_constraints(const T1 & d, const T2 & e)
550  {
551  a = static_cast<T3>(d & e);
552  a = static_cast<T3>(d | e);
553  a = static_cast<T3>(d ^ e);
554  a &= static_cast<T3>(e);
555  a |= static_cast<T3>(e);
556  a ^= static_cast<T3>(e);
557  }
558 
559  T3 a;
560  T1 b;
561  T2 c;
562  };
563 
565 };
566 
568 template <typename T1, typename T2 = T1, typename T3 = T1>
570 {
571  struct Constraints
572  {
573  void
575  {
576  a = static_cast<T3>(b[c]);
578  }
581  void
582  const_constraints(const T1 & d, const T2 & e)
583  {
584  a = static_cast<T3>(d[e]);
585  }
586 
587  T3 a;
588  T1 b;
589  T2 c;
590  };
591 
593 };
594 
596 template <typename T>
598 {
599  struct Constraints
600  {
601  void
603  {
604  a = !a;
605  }
606 
607  T a;
608  };
609 
611 };
612 
614 template <typename T>
616 {
617  struct Constraints
618  {
619  void
621  {
622  a++;
623  a--;
624  ++a;
625  --a;
626  }
627 
628  T a;
629  };
630 
632 };
633 
635 template <typename T>
637 {
638  struct Constraints
639  {
640  void
642  {
643  std::cout << a;
644  }
645 
646  T a;
647  };
648 
650 };
651 
653 template <typename T>
654 struct Signed
655 {
656  using Self = Signed;
657  static constexpr bool IsSigned = NumericTraits<T>::is_signed;
658  struct Constraints
659  {
662  void
664  {
665  SignedT a = TrueT();
669  }
670  };
671 
673 };
674 
676 template <typename T1, typename T2>
677 struct SameType
678 {
679  struct Constraints
680  {
681  void
683  {
686  }
687  };
689 };
693 template <unsigned int D1, unsigned int D2>
695 {
696  struct Constraints
697  {
700  void
702  {
703  DT1 a = DT2();
707  }
708  };
710 };
711 
713 template <typename T>
715 {
716  struct Constraints
717  {
718  void
720  {
728  T a{};
731  // Test these methods that take an instance of T to
732  // allow for types with variable length.
736 
737  bool b = NumericTraits<T>::IsPositive(a);
743  }
744  };
745 
747 };
748 
750 template <typename T>
752 {
753  struct Constraints
754  {
755  void
757  {
759  unsigned int a = PixelTraits<T>::Dimension;
761  }
762  };
766 };
767 
769 template <typename T>
771 {
772  struct Constraints
773  {
774  void
776  {
778  }
779  };
783 };
784 
786 template <typename T>
787 struct HasZero
788 {
789  struct Constraints
790  {
791  void
793  {
794  T a;
795 
796  a = T{};
798  }
799  };
800 
802 };
803 
805 template <typename T1, typename T2>
807 {
808  struct Constraints
809  {
810  void
812  {
814  }
815  };
819 };
820 
822 template <unsigned int D1, unsigned int D2>
824 {
825  struct Constraints
826  {
829 
830  void f(Type1) {}
831  void
832  f(Type2, int = 0)
833  {}
834 
835  void
837  {
839  this->f(tt);
840  }
841  };
843 };
844 
846 template <unsigned int D1, unsigned int D2>
848 {
849  struct Constraints
850  {
854 
855  void f(Type1) {}
856  void
857  f(Type2, int = 0)
858  {}
859  void
860  f(Type3, int = 0, int = 0)
861  {}
862 
863  void
865  {
867  this->f(tt);
868  }
869  };
871 };
872 
874 template <typename T>
875 struct IsInteger
876 {
877  using Self = IsInteger;
878  static constexpr bool Integral = std::is_integral_v<T>;
879  struct Constraints
880  {
883  void
885  {
886  IntegralT a = TrueT();
890  }
891  };
892 
894 };
895 
896 
898 template <typename T>
900 {
902  static constexpr bool Unsigned = !NumericTraits<T>::is_signed;
903  struct Constraints
904  {
907  void
909  {
910  UnsignedT a = TrueT();
914  }
915  };
916 
918 };
919 
920 
922 template <typename T>
924 {
926  static constexpr bool NonIntegral = std::is_integral_v<T>;
927  struct Constraints
928  {
931  void
933  {
934  NonIntegralT a = FalseT();
938  }
939  };
940 
942 };
943 
945 template <typename T>
947 {
949  static constexpr bool Integral = std::is_integral_v<T>;
950  static constexpr bool IsExact = std::numeric_limits<typename NumericTraits<T>::ValueType>::is_exact;
951  struct Constraints
952  {
956  void
958  {
959  IntegralT a = FalseT();
960  ExactT b = FalseT();
965  }
966  };
967 
969 };
970 
972 template <typename T>
974 {
976  static constexpr bool Integral = std::is_integral_v<T>;
977  static constexpr bool IsExact = std::numeric_limits<typename NumericTraits<T>::ValueType>::is_exact;
978  struct Constraints
979  {
984  void
986  {
987  IntegralT a = FalseT();
988  ExactT b = TrueT();
993  }
994  };
995 
997 };
998 } // end namespace Concept
999 } // end namespace itk
1000 
1001 #endif
itk::Concept::AdditiveOperators::Constraints
Definition: itkConceptChecking.h:360
itk::Concept::AdditiveOperators::Constraints::b
T1 b
Definition: itkConceptChecking.h:379
itk::Concept::IsUnsignedInteger::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsUnsignedInteger::Unsigned
static constexpr bool Unsigned
Definition: itkConceptChecking.h:902
itk::Concept::IncrementDecrementOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:620
itk::Concept::LessThanComparable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:267
itk::Concept::Comparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:348
itk::Concept::Detail::UniqueType_bool
Definition: itkConceptChecking.h:136
itk::Concept::DivisionAndAssignOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::OStreamWritable
Definition: itkConceptChecking.h:636
itk::Concept::IsNonInteger::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::NumericTraits::IsPositive
static bool IsPositive(T val)
Definition: itkNumericTraits.h:105
itk::Concept::NotOperator::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::EqualityComparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:321
itk::Concept::HasNumericTraits
Definition: itkConceptChecking.h:714
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::f
void f(Type1)
Definition: itkConceptChecking.h:855
itk::Concept::CopyConstructible::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:188
itk::Concept::SameDimension::Constraints::DT2
Detail::UniqueType_unsigned_int< D2 > DT2
Definition: itkConceptChecking.h:699
itk::Concept::AdditiveAndAssignOperators::Constraints
Definition: itkConceptChecking.h:392
itk::Concept::IsFloatingPoint::Constraints::FalseT
Detail::UniqueType_bool< false > FalseT
Definition: itkConceptChecking.h:953
itk::Concept::HasValueType::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:775
itk::Concept::HasZero
Definition: itkConceptChecking.h:787
itk::Concept::IsFloatingPoint::IsExact
static constexpr bool IsExact
Definition: itkConceptChecking.h:950
itk::Concept::HasValueType
Definition: itkConceptChecking.h:770
itk::Concept::IsInteger::Constraints
Definition: itkConceptChecking.h:879
itk::Concept::BracketOperator::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:582
itk::Concept::IsNonInteger::Constraints::FalseT
Detail::UniqueType_bool< false > FalseT
Definition: itkConceptChecking.h:929
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:864
itk::Concept::Comparable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:335
itk::Concept::GreaterThanComparable
Definition: itkConceptChecking.h:284
itk::Concept::AdditiveAndAssignOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:395
itk::Concept::IsFloatingPoint::Integral
static constexpr bool Integral
Definition: itkConceptChecking.h:949
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::f
void f(Type2, int=0)
Definition: itkConceptChecking.h:857
itk::Concept::IsUnsignedInteger::Constraints
Definition: itkConceptChecking.h:903
itk::Concept::MultiplyOperator::Constraints::c
T2 c
Definition: itkConceptChecking.h:439
itk::Concept::EqualityComparable::Constraints
Definition: itkConceptChecking.h:308
itk::Concept::EqualityComparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:320
itk::Concept::AdditiveAndAssignOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::NumericTraits::NonpositiveMin
static constexpr T NonpositiveMin()
Definition: itkNumericTraits.h:98
itk::Concept::DivisionOperators::Constraints::a
T3 a
Definition: itkConceptChecking.h:491
itk::Concept::Comparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:349
itk::Concept::Assignable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameType::Constraints
Definition: itkConceptChecking.h:679
itk::Concept::NotOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:602
itk::Concept::IsFixedPoint::Constraints::FalseT
Detail::UniqueType_bool< false > FalseT
Definition: itkConceptChecking.h:981
itk::Concept::IsFloatingPoint::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimension::Constraints
Definition: itkConceptChecking.h:696
itk::Concept::CopyConstructible::Constraints::const_constraints
void const_constraints(const T &a)
Definition: itkConceptChecking.h:199
itk::Concept::HasValueType::Constraints
Definition: itkConceptChecking.h:772
itk::Concept::MultiplyAndAssignOperator::Constraints
Definition: itkConceptChecking.h:448
itk::Concept::SameDimensionOrMinusOne
Definition: itkConceptChecking.h:823
itkPixelTraits.h
itk::Concept::NotOperator
Definition: itkConceptChecking.h:597
itk::Concept::BracketOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:574
itk::Concept::AdditiveOperators::Constraints::c
T2 c
Definition: itkConceptChecking.h:380
itk::Concept::GreaterThanComparable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::MultiplyAndAssignOperator::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::MultiplyOperator::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:432
itk::Concept::DivisionAndAssignOperators
Definition: itkConceptChecking.h:502
itk::PixelTraits
Traits for a pixel that define the dimension and component type.
Definition: itkPixelTraits.h:45
itk::Concept::BitwiseOperators::Constraints
Definition: itkConceptChecking.h:533
itk::Concept::SameDimensionOrMinusOne::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:836
itk::Concept::AdditiveAndAssignOperators
Definition: itkConceptChecking.h:390
itk::Concept::DivisionOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:478
itk::Concept::Convertible::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:221
itk::Concept::HasPixelTraits::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:756
itk::Concept::IsInteger
Definition: itkConceptChecking.h:875
itk::Concept::Signed::Constraints
Definition: itkConceptChecking.h:658
itk::Concept::SameDimension
Definition: itkConceptChecking.h:694
itk::Concept::AdditiveAndAssignOperators::Constraints::a
T2 a
Definition: itkConceptChecking.h:410
itk::Concept::GreaterThanComparable::Constraints
Definition: itkConceptChecking.h:286
itk::Concept::EqualityComparable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsUnsignedInteger::Constraints::TrueT
Detail::UniqueType_bool< true > TrueT
Definition: itkConceptChecking.h:905
itk::Concept::DivisionAndAssignOperators::Constraints::const_constraints
void const_constraints(const T1 &d)
Definition: itkConceptChecking.h:515
itk::Concept::Assignable
Definition: itkConceptChecking.h:235
itk::Concept::MultiplyOperator::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::MultiplyAndAssignOperator::Constraints::a
T2 a
Definition: itkConceptChecking.h:464
itk::Concept::HasJoinTraits::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:811
itk::Concept::DivisionOperators::Constraints::b
T1 b
Definition: itkConceptChecking.h:492
itk::Concept::IncrementDecrementOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimensionOrMinusOne::Constraints::f
void f(Type1)
Definition: itkConceptChecking.h:830
itk::Concept::HasNumericTraits::Constraints
Definition: itkConceptChecking.h:716
itk::Concept::Signed::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsInteger::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimensionOrMinusOneOrTwo
Definition: itkConceptChecking.h:847
itk::Concept::NotOperator::Constraints::a
T a
Definition: itkConceptChecking.h:607
itk::Concept::SameDimensionOrMinusOne::Constraints::f
void f(Type2, int=0)
Definition: itkConceptChecking.h:832
itk::Concept::IsFloatingPoint::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:957
itk::Concept::LessThanComparable::Constraints
Definition: itkConceptChecking.h:264
itk::Concept::BracketOperator::Constraints::a
T3 a
Definition: itkConceptChecking.h:587
itk::Concept::AdditiveAndAssignOperators::Constraints::const_constraints
void const_constraints(const T1 &d)
Definition: itkConceptChecking.h:404
itk::Concept::IsFixedPoint::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsNonInteger
Definition: itkConceptChecking.h:923
itk::Concept::Assignable::Constraints::const_constraints
void const_constraints(const T &b)
Definition: itkConceptChecking.h:248
itk::Concept::IncrementDecrementOperators::Constraints
Definition: itkConceptChecking.h:617
itk::Concept::OStreamWritable::Constraints
Definition: itkConceptChecking.h:638
itk::Concept::Signed::IsSigned
static constexpr bool IsSigned
Definition: itkConceptChecking.h:657
itk::Concept::DivisionAndAssignOperators::Constraints
Definition: itkConceptChecking.h:504
itk::NumericTraits::OneValue
static T OneValue()
Definition: itkNumericTraits.h:157
itk::Concept::Signed
Definition: itkConceptChecking.h:654
itk::Concept::BitwiseOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::DefaultConstructible::Constraints
Definition: itkConceptChecking.h:167
itk::Concept::Signed::Constraints::TrueT
Detail::UniqueType_bool< true > TrueT
Definition: itkConceptChecking.h:660
itk::Concept::GreaterThanComparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:296
itk::Concept::CopyConstructible::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameType::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:682
itk::Concept::SameDimension::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimension::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:701
itk::Concept::Signed::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:663
itk::Concept::HasPixelTraits::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::LessThanComparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:274
itk::Concept::HasPixelTraits::Constraints
Definition: itkConceptChecking.h:753
itk::Concept::DivisionOperators::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:486
itk::Concept::MultiplyAndAssignOperator::Constraints::const_constraints
void const_constraints(const T1 &d)
Definition: itkConceptChecking.h:459
itk::Concept::IsFixedPoint::Constraints
Definition: itkConceptChecking.h:978
itk::Concept::IsInteger::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:884
itk::Concept::IsFloatingPoint
Definition: itkConceptChecking.h:946
itk::Concept::AdditiveOperators::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:372
itk::Concept::AdditiveOperators::Constraints::a
T3 a
Definition: itkConceptChecking.h:378
itk::Concept::SameType::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::AdditiveOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::LessThanComparable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::CopyConstructible
Definition: itkConceptChecking.h:183
itk::Concept::Assignable::Constraints::a
T a
Definition: itkConceptChecking.h:253
itk::Concept::Assignable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:240
itk::Concept::HasJoinTraits::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::Detail::UniqueType
Definition: itkConceptChecking.h:127
itk::Concept::Convertible::Constraints::a
T1 a
Definition: itkConceptChecking.h:228
itk::Concept::Detail::UniqueType_unsigned_int
Definition: itkConceptChecking.h:133
itk::Concept::DivisionAndAssignOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:507
itk::Concept::Convertible::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::CopyConstructible::Constraints::b
T b
Definition: itkConceptChecking.h:208
itk::Concept::MultiplyOperator::Constraints::a
T3 a
Definition: itkConceptChecking.h:437
itk::Concept::GreaterThanComparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:297
itk::Concept::BitwiseOperators::Constraints::c
T2 c
Definition: itkConceptChecking.h:561
itk::Concept::DivisionOperators
Definition: itkConceptChecking.h:473
itk::Concept::AdditiveAndAssignOperators::Constraints::c
T1 c
Definition: itkConceptChecking.h:411
itk::Concept::Detail::UniqueType_int
Definition: itkConceptChecking.h:130
itk::Concept::AdditiveOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:363
itk::Concept::OStreamWritable::Constraints::a
T a
Definition: itkConceptChecking.h:646
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::f
void f(Type3, int=0, int=0)
Definition: itkConceptChecking.h:860
itk::Concept::HasZero::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::HasNumericTraits::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:719
itk::Concept::MultiplyOperator
Definition: itkConceptChecking.h:419
itk::Concept::Convertible::Constraints
Definition: itkConceptChecking.h:218
itk::Concept::NotOperator::Constraints
Definition: itkConceptChecking.h:599
itk::Concept::Comparable
Definition: itkConceptChecking.h:330
itk::NumericTraits
Define additional traits for native types such as int or float.
Definition: itkNumericTraits.h:59
itk::Concept::IsUnsignedInteger
Definition: itkConceptChecking.h:899
itk::Concept::DefaultConstructible::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:170
itk::Concept::DefaultConstructible::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsFloatingPoint::Constraints
Definition: itkConceptChecking.h:951
itk::NumericTraits::ZeroValue
static T ZeroValue()
Definition: itkNumericTraits.h:149
itk::Concept::AdditiveOperators
Definition: itkConceptChecking.h:358
itk::Concept::OStreamWritable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::BitwiseOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:536
itk::Concept::IsInteger::Constraints::TrueT
Detail::UniqueType_bool< true > TrueT
Definition: itkConceptChecking.h:881
itk::Concept::HasJoinTraits
Definition: itkConceptChecking.h:806
itk::Concept::BitwiseOperators::Constraints::a
T3 a
Definition: itkConceptChecking.h:559
itk::Concept::LessThanComparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:275
itk::NumericTraits::IsNonnegative
static bool IsNonnegative(T val)
Definition: itkNumericTraits.h:126
itk::Concept::SameType
Definition: itkConceptChecking.h:677
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::Concept::BracketOperator::Constraints::c
T2 c
Definition: itkConceptChecking.h:589
itk::Concept::DivisionOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::BitwiseOperators::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:549
itk::Concept::BitwiseOperators
Definition: itkConceptChecking.h:531
itk::Concept::IsFixedPoint
Definition: itkConceptChecking.h:973
itk::Concept::HasJoinTraits::Constraints
Definition: itkConceptChecking.h:808
itk::NumericTraits::IsNonpositive
static bool IsNonpositive(T val)
Definition: itkNumericTraits.h:112
itk::Concept::IsFixedPoint::Integral
static constexpr bool Integral
Definition: itkConceptChecking.h:976
itk::Concept::MultiplyAndAssignOperator::Constraints::b
T1 b
Definition: itkConceptChecking.h:465
itk::Concept::HasValueType::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::DefaultConstructible
Definition: itkConceptChecking.h:165
itk::Concept::IsFixedPoint::Constraints::TrueT
Detail::UniqueType_bool< true > TrueT
Definition: itkConceptChecking.h:980
itk::Concept::Convertible
Definition: itkConceptChecking.h:216
itk::Concept::OStreamWritable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:641
itk::Concept::MultiplyOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:424
itk::Concept::IsFixedPoint::IsExact
static constexpr bool IsExact
Definition: itkConceptChecking.h:977
itkNumericTraits.h
itk::Concept::Comparable::Constraints
Definition: itkConceptChecking.h:332
itk::Math::e
static constexpr double e
Definition: itkMath.h:56
itk::Concept::DivisionOperators::Constraints
Definition: itkConceptChecking.h:475
itk::Concept::IsNonInteger::Constraints
Definition: itkConceptChecking.h:927
itk::Concept::SameDimensionOrMinusOneOrTwo::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsUnsignedInteger::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:908
itk::Concept::HasPixelTraits
Definition: itkConceptChecking.h:751
itk::Concept::BracketOperator::Constraints::b
T1 b
Definition: itkConceptChecking.h:588
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints
Definition: itkConceptChecking.h:849
itk::Concept::HasNumericTraits::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::GreaterThanComparable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:289
itk::Concept::DivisionAndAssignOperators::Constraints::a
T2 a
Definition: itkConceptChecking.h:521
itk::Concept::BitwiseOperators::Constraints::b
T1 b
Definition: itkConceptChecking.h:560
itk::Concept::IsFixedPoint::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:985
itk::Concept::MultiplyAndAssignOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:451
itk::Concept::EqualityComparable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:311
itk::Concept::CopyConstructible::Constraints
Definition: itkConceptChecking.h:185
itk::Concept::MultiplyOperator::Constraints
Definition: itkConceptChecking.h:421
itk::Concept::SameDimensionOrMinusOne::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IncrementDecrementOperators::Constraints::a
T a
Definition: itkConceptChecking.h:628
itk::Concept::MultiplyAndAssignOperator
Definition: itkConceptChecking.h:446
itk::Concept::IncrementDecrementOperators
Definition: itkConceptChecking.h:615
itk::Concept::BracketOperator::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::BracketOperator
Definition: itkConceptChecking.h:569
itk::Concept::DivisionAndAssignOperators::Constraints::c
T1 c
Definition: itkConceptChecking.h:520
itk::Concept::MultiplyOperator::Constraints::b
T1 b
Definition: itkConceptChecking.h:438
itk::Concept::HasZero::Constraints
Definition: itkConceptChecking.h:789
itk::Concept::HasZero::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:792
itk::Concept::DivisionOperators::Constraints::c
T2 c
Definition: itkConceptChecking.h:493
itk::Concept::Detail::RequireBooleanExpression
void RequireBooleanExpression(const T &t)
Definition: itkConceptChecking.h:155
itk::Concept::EqualityComparable
Definition: itkConceptChecking.h:306
itk::Concept::Assignable::Constraints
Definition: itkConceptChecking.h:237
itk::Concept::BracketOperator::Constraints
Definition: itkConceptChecking.h:571
itk::Concept::IsInteger::Integral
static constexpr bool Integral
Definition: itkConceptChecking.h:878
itk::NumericTraits::IsNegative
static bool IsNegative(T val)
Definition: itkNumericTraits.h:119
itk::Concept::LessThanComparable
Definition: itkConceptChecking.h:262
itk::Concept::IsNonInteger::NonIntegral
static constexpr bool NonIntegral
Definition: itkConceptChecking.h:926
itk::Concept::Comparable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsNonInteger::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:932
itk::Concept::SameDimensionOrMinusOne::Constraints
Definition: itkConceptChecking.h:825
itk::Concept::Detail::IgnoreUnusedVariable
void IgnoreUnusedVariable(T)
Definition: itkConceptChecking.h:145