ITK  6.0.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  ITK_GCC_PRAGMA_PUSH
314  ITK_GCC_SUPPRESS_Wfloat_equal
317  ITK_GCC_PRAGMA_POP
318  }
321  T1 a;
322  T2 b;
323  };
324 
326 };
327 
330 template <typename T1, typename T2 = T1>
332 {
333  struct Constraints
334  {
335  void
337  {
342  ITK_GCC_PRAGMA_PUSH
343  ITK_GCC_SUPPRESS_Wfloat_equal
346  ITK_GCC_PRAGMA_POP
347  }
350  T1 a;
351  T2 b;
352  };
353 
355 };
356 
359 template <typename T1, typename T2 = T1, typename T3 = T1>
361 {
362  struct Constraints
363  {
364  void
366  {
367  a = static_cast<T3>(b + c);
368  a = static_cast<T3>(b - c);
370  }
373  void
374  const_constraints(const T1 & d, const T2 & e)
375  {
376  a = static_cast<T3>(d + e);
377  a = static_cast<T3>(d - e);
378  }
379 
380  T3 a;
381  T1 b;
382  T2 c;
383  };
384 
386 };
387 
388 
391 template <typename T1, typename T2 = T1>
393 {
394  struct Constraints
395  {
396  void
398  {
399  a += c;
400  a -= c;
402  }
405  void
406  const_constraints(const T1 & d)
407  {
408  a += d;
409  a -= d;
410  }
411 
412  T2 a;
413  T1 c;
414  };
415 
417 };
418 
420 template <typename T1, typename T2 = T1, typename T3 = T1>
422 {
423  struct Constraints
424  {
425  void
427  {
428  a = static_cast<T3>(b * c);
430  }
433  void
434  const_constraints(const T1 & d, const T2 & e)
435  {
436  a = static_cast<T3>(d * e);
437  }
438 
439  T3 a;
440  T1 b;
441  T2 c;
442  };
444 };
445 
447 template <typename T1, typename T2 = T1>
449 {
450  struct Constraints
451  {
452  void
454  {
455  a *= b;
457  }
460  void
461  const_constraints(const T1 & d)
462  {
463  a *= d;
464  }
465 
466  T2 a;
467  T1 b;
468  };
469 
471 };
472 
474 template <typename T1, typename T2 = T1, typename T3 = T1>
476 {
477  struct Constraints
478  {
479  void
481  {
482  a = static_cast<T3>(b / c);
484  }
487  void
488  const_constraints(const T1 & d, const T2 & e)
489  {
490  a = static_cast<T3>(d / e);
491  }
492 
493  T3 a;
494  T1 b;
495  T2 c;
496  };
497 
499 };
500 
501 
503 template <typename T1, typename T2 = T1>
505 {
506  struct Constraints
507  {
508  void
510  {
511  a /= c;
513  }
516  void
517  const_constraints(const T1 & d)
518  {
519  a /= d;
520  }
521 
522  T1 c;
523  T2 a;
524  };
525 
527 };
528 
529 
532 template <typename T1, typename T2 = T1, typename T3 = T1>
534 {
535  struct Constraints
536  {
537  void
539  {
540  a = static_cast<T3>(b & c);
541  a = static_cast<T3>(b | c);
542  a = static_cast<T3>(b ^ c);
543  a &= static_cast<T3>(c);
544  a |= static_cast<T3>(c);
545  a ^= static_cast<T3>(c);
547  }
550  void
551  const_constraints(const T1 & d, const T2 & e)
552  {
553  a = static_cast<T3>(d & e);
554  a = static_cast<T3>(d | e);
555  a = static_cast<T3>(d ^ e);
556  a &= static_cast<T3>(e);
557  a |= static_cast<T3>(e);
558  a ^= static_cast<T3>(e);
559  }
560 
561  T3 a;
562  T1 b;
563  T2 c;
564  };
565 
567 };
568 
570 template <typename T1, typename T2 = T1, typename T3 = T1>
572 {
573  struct Constraints
574  {
575  void
577  {
578  a = static_cast<T3>(b[c]);
580  }
583  void
584  const_constraints(const T1 & d, const T2 & e)
585  {
586  a = static_cast<T3>(d[e]);
587  }
588 
589  T3 a;
590  T1 b;
591  T2 c;
592  };
593 
595 };
596 
598 template <typename T>
600 {
601  struct Constraints
602  {
603  void
605  {
606  a = !a;
607  }
608 
609  T a;
610  };
611 
613 };
614 
616 template <typename T>
618 {
619  struct Constraints
620  {
621  void
623  {
624  a++;
625  a--;
626  ++a;
627  --a;
628  }
629 
630  T a;
631  };
632 
634 };
635 
637 template <typename T>
639 {
640  struct Constraints
641  {
642  void
644  {
645  std::cout << a;
646  }
647 
648  T a;
649  };
650 
652 };
653 
655 template <typename T>
656 struct Signed
657 {
658  using Self = Signed;
659  static constexpr bool IsSigned = NumericTraits<T>::is_signed;
660  struct Constraints
661  {
664  void
666  {
667  SignedT a = TrueT();
671  }
672  };
673 
675 };
676 
678 template <typename T1, typename T2>
679 struct SameType
680 {
681  struct Constraints
682  {
683  void
685  {
688  }
689  };
691 };
695 template <unsigned int D1, unsigned int D2>
697 {
698  struct Constraints
699  {
702  void
704  {
705  DT1 a = DT2();
709  }
710  };
712 };
713 
715 template <typename T>
717 {
718  struct Constraints
719  {
720  void
722  {
730  T a{};
733  // Test these methods that take an instance of T to
734  // allow for types with variable length.
738 
739  bool b = NumericTraits<T>::IsPositive(a);
745  }
746  };
747 
749 };
750 
752 template <typename T>
754 {
755  struct Constraints
756  {
757  void
759  {
761  unsigned int a = PixelTraits<T>::Dimension;
763  }
764  };
768 };
769 
771 template <typename T>
773 {
774  struct Constraints
775  {
776  void
778  {
780  }
781  };
785 };
786 
788 template <typename T>
789 struct HasZero
790 {
791  struct Constraints
792  {
793  void
795  {
796  T a;
797 
798  a = T{};
800  }
801  };
802 
804 };
805 
807 template <typename T1, typename T2>
809 {
810  struct Constraints
811  {
812  void
814  {
816  }
817  };
821 };
822 
824 template <unsigned int D1, unsigned int D2>
826 {
827  struct Constraints
828  {
831 
832  void f(Type1) {}
833  void
834  f(Type2, int = 0)
835  {}
836 
837  void
839  {
841  this->f(tt);
842  }
843  };
845 };
846 
848 template <unsigned int D1, unsigned int D2>
850 {
851  struct Constraints
852  {
856 
857  void f(Type1) {}
858  void
859  f(Type2, int = 0)
860  {}
861  void
862  f(Type3, int = 0, int = 0)
863  {}
864 
865  void
867  {
869  this->f(tt);
870  }
871  };
873 };
874 
876 template <typename T>
877 struct IsInteger
878 {
879  using Self = IsInteger;
880  static constexpr bool Integral = std::is_integral_v<T>;
881  struct Constraints
882  {
885  void
887  {
888  IntegralT a = TrueT();
892  }
893  };
894 
896 };
897 
898 
900 template <typename T>
902 {
904  static constexpr bool Unsigned = !NumericTraits<T>::is_signed;
905  struct Constraints
906  {
909  void
911  {
912  UnsignedT a = TrueT();
916  }
917  };
918 
920 };
921 
922 
924 template <typename T>
926 {
928  static constexpr bool NonIntegral = std::is_integral_v<T>;
929  struct Constraints
930  {
933  void
935  {
936  NonIntegralT a = FalseT();
940  }
941  };
942 
944 };
945 
947 template <typename T>
949 {
951  static constexpr bool Integral = std::is_integral_v<T>;
952  static constexpr bool IsExact = std::numeric_limits<typename NumericTraits<T>::ValueType>::is_exact;
953  struct Constraints
954  {
958  void
960  {
961  IntegralT a = FalseT();
962  ExactT b = FalseT();
967  }
968  };
969 
971 };
972 
974 template <typename T>
976 {
978  static constexpr bool Integral = std::is_integral_v<T>;
979  static constexpr bool IsExact = std::numeric_limits<typename NumericTraits<T>::ValueType>::is_exact;
980  struct Constraints
981  {
986  void
988  {
989  IntegralT a = FalseT();
990  ExactT b = TrueT();
995  }
996  };
997 
999 };
1000 } // end namespace Concept
1001 } // end namespace itk
1002 
1003 #endif
itk::Concept::AdditiveOperators::Constraints
Definition: itkConceptChecking.h:362
itk::Concept::AdditiveOperators::Constraints::b
T1 b
Definition: itkConceptChecking.h:381
itk::Concept::IsUnsignedInteger::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsUnsignedInteger::Unsigned
static constexpr bool Unsigned
Definition: itkConceptChecking.h:904
itk::Concept::IncrementDecrementOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:622
itk::Concept::LessThanComparable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:267
itk::Concept::Comparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:350
itk::Concept::Detail::UniqueType_bool
Definition: itkConceptChecking.h:136
itk::Concept::DivisionAndAssignOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::OStreamWritable
Definition: itkConceptChecking.h:638
itk::Concept::IsNonInteger::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::NumericTraits::IsPositive
static bool IsPositive(T val)
Definition: itkNumericTraits.h:106
itk::Concept::NotOperator::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::EqualityComparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:322
itk::Concept::HasNumericTraits
Definition: itkConceptChecking.h:716
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::f
void f(Type1)
Definition: itkConceptChecking.h:857
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:701
itk::Concept::AdditiveAndAssignOperators::Constraints
Definition: itkConceptChecking.h:394
itk::Concept::IsFloatingPoint::Constraints::FalseT
Detail::UniqueType_bool< false > FalseT
Definition: itkConceptChecking.h:955
itk::Concept::HasValueType::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:777
itk::Concept::HasZero
Definition: itkConceptChecking.h:789
itk::Concept::IsFloatingPoint::IsExact
static constexpr bool IsExact
Definition: itkConceptChecking.h:952
itk::Concept::HasValueType
Definition: itkConceptChecking.h:772
itk::Concept::IsInteger::Constraints
Definition: itkConceptChecking.h:881
itk::Concept::BracketOperator::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:584
itk::Concept::IsNonInteger::Constraints::FalseT
Detail::UniqueType_bool< false > FalseT
Definition: itkConceptChecking.h:931
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:866
itk::Concept::Comparable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:336
itk::Concept::GreaterThanComparable
Definition: itkConceptChecking.h:284
itk::Concept::AdditiveAndAssignOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:397
itk::Concept::IsFloatingPoint::Integral
static constexpr bool Integral
Definition: itkConceptChecking.h:951
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::f
void f(Type2, int=0)
Definition: itkConceptChecking.h:859
itk::Concept::IsUnsignedInteger::Constraints
Definition: itkConceptChecking.h:905
itk::Concept::MultiplyOperator::Constraints::c
T2 c
Definition: itkConceptChecking.h:441
itk::Concept::EqualityComparable::Constraints
Definition: itkConceptChecking.h:308
itk::Concept::EqualityComparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:321
itk::Concept::AdditiveAndAssignOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::NumericTraits::NonpositiveMin
static constexpr T NonpositiveMin()
Definition: itkNumericTraits.h:99
itk::Concept::DivisionOperators::Constraints::a
T3 a
Definition: itkConceptChecking.h:493
itk::Concept::Comparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:351
itk::Concept::Assignable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameType::Constraints
Definition: itkConceptChecking.h:681
itk::Concept::NotOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:604
itk::Concept::IsFixedPoint::Constraints::FalseT
Detail::UniqueType_bool< false > FalseT
Definition: itkConceptChecking.h:983
itk::Concept::IsFloatingPoint::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimension::Constraints
Definition: itkConceptChecking.h:698
itk::Concept::CopyConstructible::Constraints::const_constraints
void const_constraints(const T &a)
Definition: itkConceptChecking.h:199
itk::Concept::HasValueType::Constraints
Definition: itkConceptChecking.h:774
itk::Concept::MultiplyAndAssignOperator::Constraints
Definition: itkConceptChecking.h:450
itk::Concept::SameDimensionOrMinusOne
Definition: itkConceptChecking.h:825
itkPixelTraits.h
itk::Concept::NotOperator
Definition: itkConceptChecking.h:599
itk::Concept::BracketOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:576
itk::Concept::AdditiveOperators::Constraints::c
T2 c
Definition: itkConceptChecking.h:382
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:434
itk::Concept::DivisionAndAssignOperators
Definition: itkConceptChecking.h:504
itk::PixelTraits
Traits for a pixel that define the dimension and component type.
Definition: itkPixelTraits.h:45
itk::Concept::BitwiseOperators::Constraints
Definition: itkConceptChecking.h:535
itk::Concept::SameDimensionOrMinusOne::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:838
itk::Concept::AdditiveAndAssignOperators
Definition: itkConceptChecking.h:392
itk::Concept::DivisionOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:480
itk::Concept::Convertible::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:221
itk::Concept::HasPixelTraits::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:758
itk::Concept::IsInteger
Definition: itkConceptChecking.h:877
itk::Concept::Signed::Constraints
Definition: itkConceptChecking.h:660
itk::Concept::SameDimension
Definition: itkConceptChecking.h:696
itk::Concept::AdditiveAndAssignOperators::Constraints::a
T2 a
Definition: itkConceptChecking.h:412
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:907
itk::Concept::DivisionAndAssignOperators::Constraints::const_constraints
void const_constraints(const T1 &d)
Definition: itkConceptChecking.h:517
itk::Concept::Assignable
Definition: itkConceptChecking.h:235
itk::Concept::MultiplyOperator::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::MultiplyAndAssignOperator::Constraints::a
T2 a
Definition: itkConceptChecking.h:466
itk::Concept::HasJoinTraits::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:813
itk::Concept::DivisionOperators::Constraints::b
T1 b
Definition: itkConceptChecking.h:494
itk::Concept::IncrementDecrementOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimensionOrMinusOne::Constraints::f
void f(Type1)
Definition: itkConceptChecking.h:832
itk::Concept::HasNumericTraits::Constraints
Definition: itkConceptChecking.h:718
itk::Concept::Signed::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsInteger::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimensionOrMinusOneOrTwo
Definition: itkConceptChecking.h:849
itk::Concept::NotOperator::Constraints::a
T a
Definition: itkConceptChecking.h:609
itk::Concept::SameDimensionOrMinusOne::Constraints::f
void f(Type2, int=0)
Definition: itkConceptChecking.h:834
itk::Concept::IsFloatingPoint::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:959
itk::Concept::LessThanComparable::Constraints
Definition: itkConceptChecking.h:264
itk::Concept::BracketOperator::Constraints::a
T3 a
Definition: itkConceptChecking.h:589
itk::Concept::AdditiveAndAssignOperators::Constraints::const_constraints
void const_constraints(const T1 &d)
Definition: itkConceptChecking.h:406
itk::Concept::IsFixedPoint::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsNonInteger
Definition: itkConceptChecking.h:925
itk::Concept::Assignable::Constraints::const_constraints
void const_constraints(const T &b)
Definition: itkConceptChecking.h:248
itk::Concept::IncrementDecrementOperators::Constraints
Definition: itkConceptChecking.h:619
itk::Concept::OStreamWritable::Constraints
Definition: itkConceptChecking.h:640
itk::Concept::Signed::IsSigned
static constexpr bool IsSigned
Definition: itkConceptChecking.h:659
itk::Concept::DivisionAndAssignOperators::Constraints
Definition: itkConceptChecking.h:506
itk::NumericTraits::OneValue
static T OneValue()
Definition: itkNumericTraits.h:158
itk::Concept::Signed
Definition: itkConceptChecking.h:656
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:662
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:684
itk::Concept::SameDimension::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::SameDimension::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:703
itk::Concept::Signed::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:665
itk::Concept::HasPixelTraits::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::LessThanComparable::Constraints::a
T1 a
Definition: itkConceptChecking.h:274
itk::Concept::HasPixelTraits::Constraints
Definition: itkConceptChecking.h:755
itk::Concept::DivisionOperators::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:488
itk::Concept::MultiplyAndAssignOperator::Constraints::const_constraints
void const_constraints(const T1 &d)
Definition: itkConceptChecking.h:461
itk::Concept::IsFixedPoint::Constraints
Definition: itkConceptChecking.h:980
itk::Concept::IsInteger::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:886
itk::Concept::IsFloatingPoint
Definition: itkConceptChecking.h:948
itk::Concept::AdditiveOperators::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:374
itk::Concept::AdditiveOperators::Constraints::a
T3 a
Definition: itkConceptChecking.h:380
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:509
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:439
itk::Concept::GreaterThanComparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:297
itk::Concept::BitwiseOperators::Constraints::c
T2 c
Definition: itkConceptChecking.h:563
itk::Concept::DivisionOperators
Definition: itkConceptChecking.h:475
itk::Concept::AdditiveAndAssignOperators::Constraints::c
T1 c
Definition: itkConceptChecking.h:413
itk::Concept::Detail::UniqueType_int
Definition: itkConceptChecking.h:130
itk::Concept::AdditiveOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:365
itk::Concept::OStreamWritable::Constraints::a
T a
Definition: itkConceptChecking.h:648
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints::f
void f(Type3, int=0, int=0)
Definition: itkConceptChecking.h:862
itk::Concept::HasZero::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::HasNumericTraits::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:721
itk::Concept::MultiplyOperator
Definition: itkConceptChecking.h:421
itk::Concept::Convertible::Constraints
Definition: itkConceptChecking.h:218
itk::Concept::NotOperator::Constraints
Definition: itkConceptChecking.h:601
itk::Concept::Comparable
Definition: itkConceptChecking.h:331
itk::NumericTraits
Define additional traits for native types such as int or float.
Definition: itkNumericTraits.h:60
itk::Concept::IsUnsignedInteger
Definition: itkConceptChecking.h:901
itk::Concept::DefaultConstructible::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:170
itk::Concept::DefaultConstructible::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsFloatingPoint::Constraints
Definition: itkConceptChecking.h:953
itk::NumericTraits::ZeroValue
static T ZeroValue()
Definition: itkNumericTraits.h:150
itk::Concept::AdditiveOperators
Definition: itkConceptChecking.h:360
itk::Concept::OStreamWritable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::BitwiseOperators::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:538
itk::Concept::IsInteger::Constraints::TrueT
Detail::UniqueType_bool< true > TrueT
Definition: itkConceptChecking.h:883
itk::Concept::HasJoinTraits
Definition: itkConceptChecking.h:808
itk::Concept::BitwiseOperators::Constraints::a
T3 a
Definition: itkConceptChecking.h:561
itk::Concept::LessThanComparable::Constraints::b
T2 b
Definition: itkConceptChecking.h:275
itk::NumericTraits::IsNonnegative
static bool IsNonnegative(T val)
Definition: itkNumericTraits.h:127
itk::Concept::SameType
Definition: itkConceptChecking.h:679
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnatomicalOrientation.h:29
itk::Concept::BracketOperator::Constraints::c
T2 c
Definition: itkConceptChecking.h:591
itk::Concept::DivisionOperators::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::BitwiseOperators::Constraints::const_constraints
void const_constraints(const T1 &d, const T2 &e)
Definition: itkConceptChecking.h:551
itk::Concept::BitwiseOperators
Definition: itkConceptChecking.h:533
itk::Concept::IsFixedPoint
Definition: itkConceptChecking.h:975
itk::Concept::HasJoinTraits::Constraints
Definition: itkConceptChecking.h:810
itk::NumericTraits::IsNonpositive
static bool IsNonpositive(T val)
Definition: itkNumericTraits.h:113
itk::Concept::IsFixedPoint::Integral
static constexpr bool Integral
Definition: itkConceptChecking.h:978
itk::Concept::MultiplyAndAssignOperator::Constraints::b
T1 b
Definition: itkConceptChecking.h:467
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:982
itk::Concept::Convertible
Definition: itkConceptChecking.h:216
itk::Concept::OStreamWritable::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:643
itk::Concept::MultiplyOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:426
itk::Concept::IsFixedPoint::IsExact
static constexpr bool IsExact
Definition: itkConceptChecking.h:979
itkNumericTraits.h
itk::Concept::Comparable::Constraints
Definition: itkConceptChecking.h:333
itk::Math::e
static constexpr double e
Definition: itkMath.h:56
itk::Concept::DivisionOperators::Constraints
Definition: itkConceptChecking.h:477
itk::Concept::IsNonInteger::Constraints
Definition: itkConceptChecking.h:929
itk::Concept::SameDimensionOrMinusOneOrTwo::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsUnsignedInteger::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:910
itk::Concept::HasPixelTraits
Definition: itkConceptChecking.h:753
itk::Concept::BracketOperator::Constraints::b
T1 b
Definition: itkConceptChecking.h:590
itk::Concept::SameDimensionOrMinusOneOrTwo::Constraints
Definition: itkConceptChecking.h:851
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:523
itk::Concept::BitwiseOperators::Constraints::b
T1 b
Definition: itkConceptChecking.h:562
itk::Concept::IsFixedPoint::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:987
itk::Concept::MultiplyAndAssignOperator::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:453
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:423
itk::Concept::SameDimensionOrMinusOne::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IncrementDecrementOperators::Constraints::a
T a
Definition: itkConceptChecking.h:630
itk::Concept::MultiplyAndAssignOperator
Definition: itkConceptChecking.h:448
itk::Concept::IncrementDecrementOperators
Definition: itkConceptChecking.h:617
itk::Concept::BracketOperator::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::BracketOperator
Definition: itkConceptChecking.h:571
itk::Concept::DivisionAndAssignOperators::Constraints::c
T1 c
Definition: itkConceptChecking.h:522
itk::Concept::MultiplyOperator::Constraints::b
T1 b
Definition: itkConceptChecking.h:440
itk::Concept::HasZero::Constraints
Definition: itkConceptChecking.h:791
itk::Concept::HasZero::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:794
itk::Concept::DivisionOperators::Constraints::c
T2 c
Definition: itkConceptChecking.h:495
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:573
itk::Concept::IsInteger::Integral
static constexpr bool Integral
Definition: itkConceptChecking.h:880
itk::NumericTraits::IsNegative
static bool IsNegative(T val)
Definition: itkNumericTraits.h:120
itk::Concept::LessThanComparable
Definition: itkConceptChecking.h:262
itk::Concept::IsNonInteger::NonIntegral
static constexpr bool NonIntegral
Definition: itkConceptChecking.h:928
itk::Concept::Comparable::itkConceptConstraintsMacro
itkConceptConstraintsMacro()
itk::Concept::IsNonInteger::Constraints::constraints
void constraints()
Definition: itkConceptChecking.h:934
itk::Concept::SameDimensionOrMinusOne::Constraints
Definition: itkConceptChecking.h:827
itk::Concept::Detail::IgnoreUnusedVariable
void IgnoreUnusedVariable(T)
Definition: itkConceptChecking.h:145