ITK  5.1.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  * http://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 # define itkConceptMacro(name, concept) \
65  enum \
66  { \
67  name = sizeof concept \
68  }
69 
70 #elif defined(ITK_CONCEPT_IMPLEMENTATION_VTABLE)
71 
77 # define itkConceptConstraintsMacro() \
78  virtual void Enforcer() { &Constraints::constraints; }
79 # define itkConceptMacro(name, concept) \
80  enum \
81  { \
82  name = sizeof concept \
83  }
84 
85 
86 #elif defined(ITK_CONCEPT_IMPLEMENTATION_CALL)
87 
89 # define itkConceptConstraintsMacro()
90 # define itkConceptMacro(name, concept) \
91  enum \
92  { \
93  name = 0 \
94  }
95 
96 #else
97 
99 # define itkConceptConstraintsMacro()
100 # define itkConceptMacro(name, concept) \
101  enum \
102  { \
103  name = 0 \
104  }
105 
106 #endif
107 
108 namespace itk
109 {
112 namespace Concept
113 {
114 
122 namespace Detail
123 {
124 template <typename T>
126 {};
127 template <int>
129 {};
130 template <unsigned int>
132 {};
133 template <bool>
135 {};
136 
142 template <typename T>
143 inline void IgnoreUnusedVariable(T)
144 {}
145 
151 template <typename T>
152 void
154 {
155  bool x = t;
156 
158 }
159 } // namespace Detail
160 
162 template <typename T>
164 {
165  struct Constraints
166  {
167  void
169  {
170  T a;
171 
173  }
174  };
175 
177 };
178 
180 template <typename T>
182 {
183  struct Constraints
184  {
185  void
187  {
188  T a(b);
189  T * p = &a;
191 
194  }
195 
196  void
197  const_constraints(const T & a)
198  {
199  T c(a);
200  const T * p = &a;
201 
204  }
205 
206  T b;
207  };
208 
210 };
211 
213 template <typename T1, typename T2>
215 {
216  struct Constraints
217  {
218  void
220  {
221  auto b = static_cast<T2>(a);
222 
224  }
225 
226  T1 a;
227  };
229 };
230 
232 template <typename T>
234 {
235  struct Constraints
236  {
237  void
239  {
240  T x = a;
242  }
244 
245  void
246  const_constraints(const T & b)
247  {
248  a = b;
249  }
250 
251  T a;
252  };
253 
255 };
256 
259 template <typename T1, typename T2 = T1>
261 {
262  struct Constraints
263  {
264  void
266  {
269  }
271 
272  T1 a;
273  T2 b;
274  };
275 
277 };
278 
281 template <typename T1, typename T2 = T1>
283 {
284  struct Constraints
285  {
286  void
288  {
291  }
293 
294  T1 a;
295  T2 b;
296  };
297 
299 };
300 
303 template <typename T1, typename T2 = T1>
305 {
306  struct Constraints
307  {
308  void
310  {
311  CLANG_PRAGMA_PUSH
312  CLANG_SUPPRESS_Wfloat_equal Detail::RequireBooleanExpression(a == b);
314  CLANG_PRAGMA_POP
315  }
317 
318  T1 a;
319  T2 b;
320  };
321 
323 };
324 
327 template <typename T1, typename T2 = T1>
329 {
330  struct Constraints
331  {
332  void
334  {
339  CLANG_PRAGMA_PUSH
340  CLANG_SUPPRESS_Wfloat_equal Detail::RequireBooleanExpression(a == b);
342  CLANG_PRAGMA_POP
343  }
345 
346  T1 a;
347  T2 b;
348  };
349 
351 };
352 
355 template <typename T1, typename T2 = T1, typename T3 = T1>
357 {
358  struct Constraints
359  {
360  void
362  {
363  a = static_cast<T3>(b + c);
364  a = static_cast<T3>(b - c);
366  }
368 
369  void
370  const_constraints(const T1 & d, const T2 & e)
371  {
372  a = static_cast<T3>(d + e);
373  a = static_cast<T3>(d - e);
374  }
375 
376  T3 a;
377  T1 b;
378  T2 c;
379  };
380 
382 };
383 
384 
387 template <typename T1, typename T2 = T1>
389 {
390  struct Constraints
391  {
392  void
394  {
395  a += c;
396  a -= c;
398  }
400 
401  void
402  const_constraints(const T1 & d)
403  {
404  a += d;
405  a -= d;
406  }
407 
408  T2 a;
409  T1 c;
410  };
411 
413 };
414 
416 template <typename T1, typename T2 = T1, typename T3 = T1>
418 {
419  struct Constraints
420  {
421  void
423  {
424  a = static_cast<T3>(b * c);
426  }
428 
429  void
430  const_constraints(const T1 & d, const T2 & e)
431  {
432  a = static_cast<T3>(d * e);
433  }
434 
435  T3 a;
436  T1 b;
437  T2 c;
438  };
440 };
441 
443 template <typename T1, typename T2 = T1>
445 {
446  struct Constraints
447  {
448  void
450  {
451  a *= b;
453  }
455 
456  void
457  const_constraints(const T1 & d)
458  {
459  a *= d;
460  }
461 
462  T2 a;
463  T1 b;
464  };
465 
467 };
468 
470 template <typename T1, typename T2 = T1, typename T3 = T1>
472 {
473  struct Constraints
474  {
475  void
477  {
478  a = static_cast<T3>(b / c);
480  }
482 
483  void
484  const_constraints(const T1 & d, const T2 & e)
485  {
486  a = static_cast<T3>(d / e);
487  }
488 
489  T3 a;
490  T1 b;
491  T2 c;
492  };
493 
495 };
496 
497 
499 template <typename T1, typename T2 = T1>
501 {
502  struct Constraints
503  {
504  void
506  {
507  a /= c;
509  }
511 
512  void
513  const_constraints(const T1 & d)
514  {
515  a /= d;
516  }
517 
518  T1 c;
519  T2 a;
520  };
521 
523 };
524 
525 
528 template <typename T1, typename T2 = T1, typename T3 = T1>
530 {
531  struct Constraints
532  {
533  void
535  {
536  a = static_cast<T3>(b & c);
537  a = static_cast<T3>(b | c);
538  a = static_cast<T3>(b ^ c);
539  a &= static_cast<T3>(c);
540  a |= static_cast<T3>(c);
541  a ^= static_cast<T3>(c);
543  }
545 
546  void
547  const_constraints(const T1 & d, const T2 & e)
548  {
549  a = static_cast<T3>(d & e);
550  a = static_cast<T3>(d | e);
551  a = static_cast<T3>(d ^ e);
552  a &= static_cast<T3>(e);
553  a |= static_cast<T3>(e);
554  a ^= static_cast<T3>(e);
555  }
556 
557  T3 a;
558  T1 b;
559  T2 c;
560  };
561 
563 };
564 
566 template <typename T1, typename T2 = T1, typename T3 = T1>
568 {
569  struct Constraints
570  {
571  void
573  {
574  a = static_cast<T3>(b[c]);
576  }
578 
579  void
580  const_constraints(const T1 & d, const T2 & e)
581  {
582  a = static_cast<T3>(d[e]);
583  }
584 
585  T3 a;
586  T1 b;
587  T2 c;
588  };
589 
591 };
592 
594 template <typename T>
596 {
597  struct Constraints
598  {
599  void
601  {
602  a = !a;
603  }
604 
605  T a;
606  };
607 
609 };
610 
612 template <typename T>
614 {
615  struct Constraints
616  {
617  void
619  {
620  a++;
621  a--;
622  ++a;
623  --a;
624  }
625 
626  T a;
627  };
628 
630 };
631 
633 template <typename T>
635 {
636  struct Constraints
637  {
638  void
640  {
641  std::cout << a;
642  }
643 
644  T a;
645  };
646 
648 };
649 
651 template <typename T>
652 struct Signed
653 {
654  using Self = Signed;
655  static constexpr bool IsSigned = NumericTraits<T>::is_signed;
656  struct Constraints
657  {
660  void
662  {
663  SignedT a = TrueT();
665 
667  }
668  };
669 
671 };
672 
674 template <typename T1, typename T2>
675 struct SameType
676 {
677  struct Constraints
678  {
679  void
681  {
684  }
685  };
687 };
689 
691 template <unsigned int D1, unsigned int D2>
693 {
694  struct Constraints
695  {
698  void
700  {
701  DT1 a = DT2();
703 
705  }
706  };
708 };
709 
711 template <typename T>
713 {
714  struct Constraints
715  {
716  void
718  {
726  T a;
727  bool b;
729 
730  // Test these methods that take an instance of T to
731  // allow for types with variable length.
735 
742  }
743  };
744 
746 };
747 
749 template <typename T>
751 {
752  struct Constraints
753  {
754  void
756  {
758  unsigned int a = PixelTraits<T>::Dimension;
760  }
761  };
763 
765 };
766 
768 template <typename T>
770 {
771  struct Constraints
772  {
773  void
775  {
777  }
778  };
780 
782 };
783 
785 template <typename T>
786 struct HasZero
787 {
788  struct Constraints
789  {
790  void
792  {
793  T a;
794 
797  }
798  };
799 
801 };
802 
804 template <typename T1, typename T2>
806 {
807  struct Constraints
808  {
809  void
811  {
813  }
814  };
816 
818 };
819 
821 template <unsigned int D1, unsigned int D2>
823 {
824  struct Constraints
825  {
828 
829  void f(Type1) {}
830  void
831  f(Type2, int = 0)
832  {}
833 
834  void
836  {
838  this->f(tt);
839  }
840  };
842 };
843 
845 template <unsigned int D1, unsigned int D2>
847 {
848  struct Constraints
849  {
853 
854  void f(Type1) {}
855  void
856  f(Type2, int = 0)
857  {}
858  void
859  f(Type3, int = 0, int = 0)
860  {}
861 
862  void
864  {
866  this->f(tt);
867  }
868  };
870 };
871 
873 template <typename T>
874 struct IsInteger
875 {
876  using Self = IsInteger;
877  static constexpr bool Integral = NumericTraits<T>::IsInteger;
878  struct Constraints
879  {
882  void
884  {
885  IntegralT a = TrueT();
887 
889  }
890  };
891 
893 };
894 
895 
897 template <typename T>
899 {
901  static constexpr bool Unsigned = !NumericTraits<T>::is_signed;
902  struct Constraints
903  {
906  void
908  {
909  UnsignedT a = TrueT();
911 
913  }
914  };
915 
917 };
918 
919 
921 template <typename T>
923 {
925  static constexpr bool NonIntegral = NumericTraits<T>::IsInteger;
926  struct Constraints
927  {
930  void
932  {
933  NonIntegralT a = FalseT();
935 
937  }
938  };
939 
941 };
942 
944 template <typename T>
946 {
948  static constexpr bool Integral = NumericTraits<T>::IsInteger;
949  static constexpr bool IsExact = std::numeric_limits<typename NumericTraits<T>::ValueType>::is_exact;
950  struct Constraints
951  {
955  void
957  {
958  IntegralT a = FalseT();
959  ExactT b = FalseT();
961 
964  }
965  };
966 
968 };
969 
971 template <typename T>
973 {
975  static constexpr bool Integral = NumericTraits<T>::IsInteger;
976  static constexpr bool IsExact = std::numeric_limits<typename NumericTraits<T>::ValueType>::is_exact;
977  struct Constraints
978  {
983  void
985  {
986  IntegralT a = FalseT();
987  ExactT b = TrueT();
989 
992  }
993  };
994 
996 };
997 } // end namespace Concept
998 } // end namespace itk
999 
1000 #endif
itk::Concept::AdditiveOperators::Constraints
Definition: itkConceptChecking.h:358
itk::Concept::AdditiveOperators::Constraints::b
T1 b
Definition: itkConceptChecking.h:377
itk::Concept::IsUnsignedInteger::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsUnsignedInteger::Unsigned
static constexpr bool Unsigned
Definition: itkConceptChecking.h:901
itk::Concept::IncrementDecrementOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:618
itk::Concept::LessThanComparable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:265
itk::Concept::Comparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:346
itk::Concept::Detail::UniqueType_bool
Definition: itkConceptChecking.h:134
itk::Concept::DivisionAndAssignOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::OStreamWritable
Definition: itkConceptChecking.h:634
itk::Concept::IsNonInteger::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::NumericTraits::IsPositive
static bool IsPositive(T val)
Definition: itkNumericTraits.h:104
itk::Concept::NotOperator::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::EqualityComparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:319
itk::Concept::HasNumericTraits
Definition: itkConceptChecking.h:712
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::f
void f(Type1)
Definition: itkConceptChecking.h:854
itk::Concept::CopyConstructible::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:186
itk::Concept::SameDimension::Constraints::DT2
Detail::UniqueType_unsigned_int< D2 > DT2
Definition: itkConceptChecking.h:697
itk::Concept::AdditiveAndAssignOperators::Constraints
Definition: itkConceptChecking.h:390
itk::Concept::IsFloatingPoint::Constraints::FalseT
Detail::UniqueType_bool< false > FalseT
Definition: itkConceptChecking.h:952
itk::Concept::HasValueType::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:774
itk::Concept::HasZero
Definition: itkConceptChecking.h:786
itk::Concept::IsFloatingPoint::IsExact
static constexpr bool IsExact
Definition: itkConceptChecking.h:949
itk::Concept::HasValueType
Definition: itkConceptChecking.h:769
itk::Concept::IsInteger::Constraints
Definition: itkConceptChecking.h:878
itk::Concept::BracketOperator::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:580
itk::Concept::IsNonInteger::Constraints::FalseT
Detail::UniqueType_bool< false > FalseT
Definition: itkConceptChecking.h:928
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:863
itk::Concept::Comparable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:333
itk::Concept::GreaterThanComparable
Definition: itkConceptChecking.h:282
itk::Concept::AdditiveAndAssignOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:393
itk::Concept::IsFloatingPoint::Integral
static constexpr bool Integral
Definition: itkConceptChecking.h:948
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::f
void f(Type2, int=0)
Definition: itkConceptChecking.h:856
itk::Concept::IsUnsignedInteger::Constraints
Definition: itkConceptChecking.h:902
itk::Concept::MultiplyOperator::Constraints::c
T2 c
Definition: itkConceptChecking.h:437
itk::Concept::EqualityComparable::Constraints
Definition: itkConceptChecking.h:306
itk::Concept::EqualityComparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:318
itk::Concept::AdditiveAndAssignOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::NumericTraits::NonpositiveMin
static constexpr T NonpositiveMin()
Definition: itkNumericTraits.h:97
itk::Concept::DivisionOperators::Constraints::a
T3 a
Definition: itkConceptChecking.h:489
itk::Concept::Comparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:347
itk::Concept::Assignable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameType::Constraints
Definition: itkConceptChecking.h:677
itk::Concept::NotOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:600
itk::Concept::IsFixedPoint::Constraints::FalseT
Detail::UniqueType_bool< false > FalseT
Definition: itkConceptChecking.h:980
itk::Concept::IsFloatingPoint::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimension::Constraints
Definition: itkConceptChecking.h:694
itk::Concept::CopyConstructible::Constraints::const_constraints
void const_constraints(const T &a)
Definition: itkConceptChecking.h:197
itk::Concept::HasValueType::Constraints
Definition: itkConceptChecking.h:771
itk::Concept::MultiplyAndAssignOperator::Constraints
Definition: itkConceptChecking.h:446
itk::Concept::SameDimensionOrMinusOne
Definition: itkConceptChecking.h:822
itkPixelTraits.h
itk::Concept::NotOperator
Definition: itkConceptChecking.h:595
itk::Concept::BracketOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:572
itk::Concept::AdditiveOperators::Constraints::c
T2 c
Definition: itkConceptChecking.h:378
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:430
itk::Concept::DivisionAndAssignOperators
Definition: itkConceptChecking.h:500
itk::PixelTraits
Traits for a pixel that define the dimension and component type.
Definition: itkPixelTraits.h:45
itk::Concept::BitwiseOperators::Constraints
Definition: itkConceptChecking.h:531
itk::Concept::SameDimensionOrMinusOne::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:835
itk::Concept::AdditiveAndAssignOperators
Definition: itkConceptChecking.h:388
itk::Concept::DivisionOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:476
itk::Concept::Convertible::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:219
itk::Concept::HasPixelTraits::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:755
itk::Concept::IsInteger
Definition: itkConceptChecking.h:874
itk::Concept::Signed::Constraints
Definition: itkConceptChecking.h:656
itk::Concept::SameDimension
Definition: itkConceptChecking.h:692
itk::Concept::AdditiveAndAssignOperators::Constraints::a
T2 a
Definition: itkConceptChecking.h:408
itk::Concept::GreaterThanComparable::Constraints
Definition: itkConceptChecking.h:284
itk::Concept::EqualityComparable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsUnsignedInteger::Constraints::TrueT
Detail::UniqueType_bool< true > TrueT
Definition: itkConceptChecking.h:904
itk::Concept::DivisionAndAssignOperators::Constraints::const_constraints
void const_constraints(const T1 &d)
Definition: itkConceptChecking.h:513
itk::Concept::Assignable
Definition: itkConceptChecking.h:233
itk::Concept::MultiplyOperator::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::MultiplyAndAssignOperator::Constraints::a
T2 a
Definition: itkConceptChecking.h:462
itk::Concept::HasJoinTraits::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:810
itk::Concept::DivisionOperators::Constraints::b
T1 b
Definition: itkConceptChecking.h:490
itk::Concept::IncrementDecrementOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimensionOrMinusOne::Constraints::f
void f(Type1)
Definition: itkConceptChecking.h:829
itk::Concept::HasNumericTraits::Constraints
Definition: itkConceptChecking.h:714
itk::Concept::Signed::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsInteger::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimensionOrMinusOneOrTwo
Definition: itkConceptChecking.h:846
itk::Concept::NotOperator::Constraints::a
T a
Definition: itkConceptChecking.h:605
itk::Concept::SameDimensionOrMinusOne::Constraints::f
void f(Type2, int=0)
Definition: itkConceptChecking.h:831
itk::Concept::IsFloatingPoint::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:956
itk::Concept::LessThanComparable::Constraints
Definition: itkConceptChecking.h:262
itk::Concept::BracketOperator::Constraints::a
T3 a
Definition: itkConceptChecking.h:585
itk::Concept::AdditiveAndAssignOperators::Constraints::const_constraints
void const_constraints(const T1 &d)
Definition: itkConceptChecking.h:402
itk::Concept::IsFixedPoint::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsNonInteger
Definition: itkConceptChecking.h:922
itk::Concept::Assignable::Constraints::const_constraints
void const_constraints(const T &b)
Definition: itkConceptChecking.h:246
itk::Concept::IncrementDecrementOperators::Constraints
Definition: itkConceptChecking.h:615
itk::Concept::OStreamWritable::Constraints
Definition: itkConceptChecking.h:636
itk::Concept::Signed::IsSigned
static constexpr bool IsSigned
Definition: itkConceptChecking.h:655
itk::Concept::DivisionAndAssignOperators::Constraints
Definition: itkConceptChecking.h:502
itk::NumericTraits::OneValue
static T OneValue()
Definition: itkNumericTraits.h:156
itk::Concept::Signed
Definition: itkConceptChecking.h:652
itk::Concept::BitwiseOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::DefaultConstructible::Constraints
Definition: itkConceptChecking.h:165
itk::Concept::Signed::Constraints::TrueT
Detail::UniqueType_bool< true > TrueT
Definition: itkConceptChecking.h:658
itk::Concept::GreaterThanComparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:294
itk::Concept::CopyConstructible::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameType::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:680
itk::Concept::SameDimension::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimension::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:699
itk::Concept::Signed::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:661
itk::Concept::HasPixelTraits::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::LessThanComparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:272
itk::Concept::HasPixelTraits::Constraints
Definition: itkConceptChecking.h:752
itk::Concept::DivisionOperators::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:484
itk::Concept::MultiplyAndAssignOperator::Constraints::const_constraints
void const_constraints(const T1 &d)
Definition: itkConceptChecking.h:457
itk::Concept::IsFixedPoint::Constraints
Definition: itkConceptChecking.h:977
itk::Concept::IsInteger::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:883
itk::Concept::IsFloatingPoint
Definition: itkConceptChecking.h:945
itk::Concept::AdditiveOperators::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:370
itk::Concept::AdditiveOperators::Constraints::a
T3 a
Definition: itkConceptChecking.h:376
itk::Concept::SameType::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::AdditiveOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::LessThanComparable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::CopyConstructible
Definition: itkConceptChecking.h:181
itk::Concept::Assignable::Constraints::a
T a
Definition: itkConceptChecking.h:251
itk::Concept::Assignable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:238
itk::Concept::HasJoinTraits::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::Detail::UniqueType
Definition: itkConceptChecking.h:125
itk::Concept::Convertible::Constraints::a
T1 a
Definition: itkConceptChecking.h:226
itk::Concept::Detail::UniqueType_unsigned_int
Definition: itkConceptChecking.h:131
itk::Concept::DivisionAndAssignOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:505
itk::Concept::Convertible::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::CopyConstructible::Constraints::b
T b
Definition: itkConceptChecking.h:206
itk::Concept::MultiplyOperator::Constraints::a
T3 a
Definition: itkConceptChecking.h:435
itk::Concept::GreaterThanComparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:295
itk::Concept::BitwiseOperators::Constraints::c
T2 c
Definition: itkConceptChecking.h:559
itk::Concept::DivisionOperators
Definition: itkConceptChecking.h:471
itk::Concept::AdditiveAndAssignOperators::Constraints::c
T1 c
Definition: itkConceptChecking.h:409
itk::Concept::Detail::UniqueType_int
Definition: itkConceptChecking.h:128
itk::Concept::AdditiveOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:361
itk::Concept::OStreamWritable::Constraints::a
T a
Definition: itkConceptChecking.h:644
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::f
void f(Type3, int=0, int=0)
Definition: itkConceptChecking.h:859
itk::Concept::HasZero::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::HasNumericTraits::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:717
itk::Concept::MultiplyOperator
Definition: itkConceptChecking.h:417
itk::Concept::Convertible::Constraints
Definition: itkConceptChecking.h:216
itk::Concept::NotOperator::Constraints
Definition: itkConceptChecking.h:597
itk::Concept::Comparable
Definition: itkConceptChecking.h:328
itk::NumericTraits
Define additional traits for native types such as int or float.
Definition: itkNumericTraits.h:58
itk::Concept::IsUnsignedInteger
Definition: itkConceptChecking.h:898
itk::Concept::DefaultConstructible::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:168
itk::Concept::DefaultConstructible::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsFloatingPoint::Constraints
Definition: itkConceptChecking.h:950
itk::NumericTraits::ZeroValue
static T ZeroValue()
Definition: itkNumericTraits.h:148
itk::Concept::AdditiveOperators
Definition: itkConceptChecking.h:356
itk::Concept::OStreamWritable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::BitwiseOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:534
itk::Concept::IsInteger::Constraints::TrueT
Detail::UniqueType_bool< true > TrueT
Definition: itkConceptChecking.h:880
itk::Concept::HasJoinTraits
Definition: itkConceptChecking.h:805
itk::Concept::BitwiseOperators::Constraints::a
T3 a
Definition: itkConceptChecking.h:557
itk::Concept::LessThanComparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:273
itk::NumericTraits::IsNonnegative
static bool IsNonnegative(T val)
Definition: itkNumericTraits.h:125
itk::Concept::SameType
Definition: itkConceptChecking.h:675
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkArray.h:26
itk::Concept::BracketOperator::Constraints::c
T2 c
Definition: itkConceptChecking.h:587
itk::Concept::DivisionOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::BitwiseOperators::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:547
itk::Concept::BitwiseOperators
Definition: itkConceptChecking.h:529
itk::Concept::IsFixedPoint
Definition: itkConceptChecking.h:972
itk::Concept::HasJoinTraits::Constraints
Definition: itkConceptChecking.h:807
itk::NumericTraits::IsNonpositive
static bool IsNonpositive(T val)
Definition: itkNumericTraits.h:111
itk::Concept::IsFixedPoint::Integral
static constexpr bool Integral
Definition: itkConceptChecking.h:975
itk::Concept::MultiplyAndAssignOperator::Constraints::b
T1 b
Definition: itkConceptChecking.h:463
itk::Concept::HasValueType::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::DefaultConstructible
Definition: itkConceptChecking.h:163
itk::Concept::IsFixedPoint::Constraints::TrueT
Detail::UniqueType_bool< true > TrueT
Definition: itkConceptChecking.h:979
itk::Concept::Convertible
Definition: itkConceptChecking.h:214
itk::Concept::OStreamWritable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:639
itk::Concept::MultiplyOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:422
itk::Concept::IsFixedPoint::IsExact
static constexpr bool IsExact
Definition: itkConceptChecking.h:976
itkNumericTraits.h
itk::Concept::Comparable::Constraints
Definition: itkConceptChecking.h:330
itk::Math::e
static constexpr double e
Definition: itkMath.h:54
itk::Concept::DivisionOperators::Constraints
Definition: itkConceptChecking.h:473
itk::Concept::IsNonInteger::Constraints
Definition: itkConceptChecking.h:926
itk::Concept::SameDimensionOrMinusOneOrTwo::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsUnsignedInteger::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:907
itk::Concept::HasPixelTraits
Definition: itkConceptChecking.h:750
itk::Concept::BracketOperator::Constraints::b
T1 b
Definition: itkConceptChecking.h:586
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints
Definition: itkConceptChecking.h:848
itk::Concept::HasNumericTraits::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::GreaterThanComparable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:287
itk::Concept::DivisionAndAssignOperators::Constraints::a
T2 a
Definition: itkConceptChecking.h:519
itk::Concept::BitwiseOperators::Constraints::b
T1 b
Definition: itkConceptChecking.h:558
itk::Concept::IsFixedPoint::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:984
itk::Concept::MultiplyAndAssignOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:449
itk::Concept::EqualityComparable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:309
itk::Concept::CopyConstructible::Constraints
Definition: itkConceptChecking.h:183
itk::Concept::MultiplyOperator::Constraints
Definition: itkConceptChecking.h:419
itk::Concept::SameDimensionOrMinusOne::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IncrementDecrementOperators::Constraints::a
T a
Definition: itkConceptChecking.h:626
itk::Concept::MultiplyAndAssignOperator
Definition: itkConceptChecking.h:444
itk::Concept::IncrementDecrementOperators
Definition: itkConceptChecking.h:613
itk::Concept::BracketOperator::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::BracketOperator
Definition: itkConceptChecking.h:567
itk::Concept::DivisionAndAssignOperators::Constraints::c
T1 c
Definition: itkConceptChecking.h:518
itk::Concept::MultiplyOperator::Constraints::b
T1 b
Definition: itkConceptChecking.h:436
itk::Concept::HasZero::Constraints
Definition: itkConceptChecking.h:788
itk::Concept::HasZero::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:791
itk::Concept::DivisionOperators::Constraints::c
T2 c
Definition: itkConceptChecking.h:491
itk::Concept::Detail::RequireBooleanExpression
void RequireBooleanExpression(const T &t)
Definition: itkConceptChecking.h:153
itk::Concept::EqualityComparable
Definition: itkConceptChecking.h:304
itk::Concept::Assignable::Constraints
Definition: itkConceptChecking.h:235
itk::Concept::BracketOperator::Constraints
Definition: itkConceptChecking.h:569
itk::Concept::IsInteger::Integral
static constexpr bool Integral
Definition: itkConceptChecking.h:877
itk::NumericTraits::IsNegative
static bool IsNegative(T val)
Definition: itkNumericTraits.h:118
itk::Concept::LessThanComparable
Definition: itkConceptChecking.h:260
itk::Concept::IsNonInteger::NonIntegral
static constexpr bool NonIntegral
Definition: itkConceptChecking.h:925
itk::Concept::Comparable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsNonInteger::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:931
itk::Concept::SameDimensionOrMinusOne::Constraints
Definition: itkConceptChecking.h:824
itk::Concept::Detail::IgnoreUnusedVariable
void IgnoreUnusedVariable(T)
Definition: itkConceptChecking.h:143