ITK/Proposals:Concept Checking: Difference between revisions
Line 65: | Line 65: | ||
|- | |- | ||
| 15 || FloatingPoint || Concept requiring T to be floating point (not integer and not fixed point) | | 15 || FloatingPoint || Concept requiring T to be floating point (not integer and not fixed point) | ||
|- | |||
| 16 || FixedPoint || Concept requiring T to be an ITK fixed point representation (not integer and not floating point) | |||
|} | |} | ||
Revision as of 15:05, 20 February 2006
Introduction
Macro Implementation
List of Concepts
See Insight/Code/Common/itkConceptChecking.h.
Index | Concept | Description |
---|---|---|
1 | DefaultConstructible | Concept requiring T to have a default constructor. |
2 | CopyConstructible | Concept requiring T to have a copy constructor. |
3 | Convertible | Concept requiring T1 to be convertible to T2. |
4 | Assignable | Concept requiring T to have operator =. |
5 | LessThanComparable | Concept requiring T to have operator <. |
6 | EqualityComparable | Concept requiring T to have operators == and !=. |
7 | Comparable | Concept requiring T to have operators <, >, <=, >=, ==, !=. |
8 | AdditiveOperators | Concept requiring T to have operators +, -, +=, -=. |
9 | MultiplicativeOperators | Concept requiring T to have operators *, /, *=, /=. |
10 | Signed | Concept requiring T to be signed. |
11 | SameType | Concept requiring T1 and T2 to be the same type. |
12 | SameDimension | Concept requiring D1 and D2 to be the same dimension. |
Proposed concept additions
Additional concepts for requiring integer or noninteger datatypes should be added to the toolkit. NumericTraits defines static boolean constants
- is_bounded
- is_exact
- is_iec559 (???)
- is_integer
- is_modulo
- is_signed
- is_specialized
- tinyness_before
These traits can be used to define concepts in a manner similar to the Signed concept. We should consider separating the concepts of integer, non-integer, floating point so that we can expand our native datatypes to include a fixed point representation.
The concepts below are poorly named. We should not have a concept called Integer since a user could confuse the name of the concept with a datatype. Unfortunately, none of the current concepts have the word concept in their name. We could follow NumericTraits, and make the new concepts called IsInteger.
Index | Concept | Description |
---|---|---|
13 | Integer | Concept requiring T to be an integer. |
14 | Noninteger | Concept requiring T to be noninteger (floating point or fixed point). |
15 | FloatingPoint | Concept requiring T to be floating point (not integer and not fixed point) |
16 | FixedPoint | Concept requiring T to be an ITK fixed point representation (not integer and not floating point) |
Integration into Filters
Schedule
Please follow the link below for a detailed list of filters and their associated concepts.