ITK/Proposals:Concept Checking: Difference between revisions
Line 36: | Line 36: | ||
|- | |- | ||
| 12 || SameDimension || Concept requiring D1 and D2 to be the same dimension. | | 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''. | |||
{| border="1" | |||
|- bgcolor="#abcdef" | |||
! 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) | |||
|} | |} | ||
Revision as of 15:04, 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) |
Integration into Filters
Schedule
Please follow the link below for a detailed list of filters and their associated concepts.