\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.12 - Algebraic Foundations
CGAL::Coercion_traits< A, B > Struct Template Reference

#include <CGAL/Coercion_traits.h>

Definition

An instance of Coercion_traits reflects the type coercion of the types A and B, it is symmetric in the two template arguments.

See also
ExplicitInteroperable
ImplicitInteroperable
Examples:
Algebraic_foundations/implicit_interoperable_dispatch.cpp, and Algebraic_foundations/interoperable.cpp.

Types

typedef unspecified_type Are_explicit_interoperable
 Tag indicating whether the two types A and B are a model of ExplicitInteroperable More...
 
typedef unspecified_type Are_implicit_interoperable
 Tag indicating whether the two types A and B are a model of ImplicitInteroperable More...
 
typedef unspecified_type Type
 The coercion type of A and B. More...
 
typedef unspecified_type Cast
 A model of the AdaptableFunctor concept, providing the conversion of A or B to Type. More...
 

Member Typedef Documentation

◆ Are_explicit_interoperable

template<typename A, typename B>
typedef unspecified_type CGAL::Coercion_traits< A, B >::Are_explicit_interoperable

Tag indicating whether the two types A and B are a model of ExplicitInteroperable

This is either CGAL::Tag_true or CGAL::Tag_false.

◆ Are_implicit_interoperable

template<typename A, typename B>
typedef unspecified_type CGAL::Coercion_traits< A, B >::Are_implicit_interoperable

Tag indicating whether the two types A and B are a model of ImplicitInteroperable

This is either CGAL::Tag_true or CGAL::Tag_false.

◆ Cast

template<typename A, typename B>
typedef unspecified_type CGAL::Coercion_traits< A, B >::Cast

A model of the AdaptableFunctor concept, providing the conversion of A or B to Type.

In case A and B are not ExplicitInteroperable this is undefined.

◆ Type

template<typename A, typename B>
typedef unspecified_type CGAL::Coercion_traits< A, B >::Type

The coercion type of A and B.

In case A and B are not ExplicitInteroperable this is undefined.