#include <CGAL/number_type_basic.h>
#include <iterator>
#include <boost/iterator/transform_iterator.hpp>
#include <boost/type_traits/is_same.hpp>
Go to the source code of this file.
Classes |
struct | INTERN_CT::Cast_from_to< FROM, TO > |
struct | INTERN_CT::Cast_from_to< TO, TO > |
struct | Coercion_traits< A, A > |
| Specialization for equal types. More...
|
struct | Coercion_traits< A, A >::Cast |
struct | Coercion_traits_for_level< A, B, i > |
struct | Coercion_traits_for_level< A, B, 0 > |
struct | Coercion_traits< A, B > |
Namespaces |
namespace | INTERN_CT |
Defines |
#define | CGAL_IMPLICIT_INTEROPERABLE_BINARY_OPERATOR_WITH_RT(NT, Result_type) |
#define | CGAL_IMPLICIT_INTEROPERABLE_BINARY_OPERATOR(NT) CGAL_IMPLICIT_INTEROPERABLE_BINARY_OPERATOR_WITH_RT( NT, NT ) |
#define | CGAL_DEFINE_COERCION_TRAITS_FROM_TO(FROM, TO) |
#define | CGAL_DEFINE_COERCION_TRAITS_FROM_TO_TEM(FROM, TO, TEM) |
#define | CGAL_DEFINE_COERCION_TRAITS_FOR_SELF(A) |
#define | CGAL_DEFINE_COERCION_TRAITS_FOR_SELF_TEM(A, TEM) |
Enumerations |
enum | COERCION_TRAITS_LEVEL {
CTL_TOP = 4,
CTL_POLYNOMIAL = 4,
CTL_COMPLEX = 3,
CTL_INTERVAL = 2,
CTL_SQRT_EXT = 1
} |
Define Documentation
Value:template <> \
struct Coercion_traits< A , A >{ \
typedef Tag_true Are_explicit_interoperable; \
typedef Tag_true Are_implicit_interoperable; \
typedef A Type; \
struct Cast{ \
typedef Type result_type; \
Type operator()(const A& x) const { return x;} \
}; \
};
Value:template <TEM> \
struct Coercion_traits< A , A >{ \
typedef Tag_true Are_explicit_interoperable; \
typedef Tag_true Are_implicit_interoperable; \
typedef A Type; \
struct Cast{ \
typedef Type result_type; \
Type operator()(const A& x) const {return x;} \
}; \
};
Value:template <> \
struct Coercion_traits< FROM , TO >{ \
typedef Tag_true Are_explicit_interoperable; \
typedef Tag_true Are_implicit_interoperable; \
typedef TO Type; \
struct Cast{ \
typedef Type result_type; \
Type operator()(const TO& x) const { return x;} \
Type operator()(const FROM& x) const { \
return Type(x);} \
}; \
}; \
template <> \
struct Coercion_traits< TO , FROM >{ \
typedef Tag_true Are_explicit_interoperable; \
typedef Tag_true Are_implicit_interoperable; \
typedef TO Type; \
struct Cast{ \
typedef Type result_type; \
Type operator()(const TO& x) const { return x;} \
Type operator()(const FROM& x) const { \
return Type(x);} \
}; \
};
Value:template <TEM> \
struct Coercion_traits< FROM , TO >{ \
typedef Tag_true Are_explicit_interoperable; \
typedef Tag_true Are_implicit_interoperable; \
typedef TO Type; \
struct Cast{ \
typedef Type result_type; \
Type operator()(const TO& x) const { return x;} \
Type operator()(const FROM& x) const { \
return Type(x);} \
}; \
}; \
template <TEM> \
struct Coercion_traits< TO , FROM >{ \
typedef Tag_true Are_explicit_interoperable; \
typedef Tag_true Are_implicit_interoperable; \
typedef TO Type; \
struct Cast{ \
typedef Type result_type; \
Type operator()(const TO& x) const { return x;} \
Type operator()(const FROM& x) const { \
return Type(x);} \
}; \
};
Enumeration Type Documentation
- Enumerator:
CTL_TOP |
|
CTL_POLYNOMIAL |
|
CTL_COMPLEX |
|
CTL_INTERVAL |
|
CTL_SQRT_EXT |
|