carl  24.04
Computer ARithmetic Library
typetraits.h File Reference
#include <carl-common/meta/platform.h>
#include <carl-common/config.h>
#include <limits>
#include <type_traits>
#include "../interval/typetraits.h"
Include dependency graph for typetraits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  carl::remove_all< T, U >
 
struct  carl::remove_all< T, T >
 
struct  carl::has_subtype< T >
 This template is designed to provide types that are related to other types. More...
 
struct  carl::is_field_type< T >
 States if a type is a field. More...
 
struct  carl::is_field_type< GFNumber< C > >
 States that a Gallois field is a field. More...
 
struct  carl::is_finite_type< T >
 States if a type represents only a finite domain. More...
 
struct  carl::is_finite_type< GFNumber< C > >
 Type trait is_finite_type_domain. More...
 
struct  carl::is_float_type< T >
 States if a type is a floating point type. More...
 
struct  carl::is_integer_type< T >
 States if a type is an integer type. More...
 
struct  carl::is_subset_of_integers_type< Type >
 States if a type represents a subset of all integers. More...
 
struct  carl::is_number_type< T >
 States if a type is a number type. More...
 
struct  carl::is_number_type< GFNumber< C > >
 
struct  carl::is_rational_type< T >
 States if a type is a rational type. More...
 
struct  carl::is_subset_of_rationals_type< T >
 States if a type represents a subset of all rationals and the representation is similar to a rational. More...
 
struct  carl::characteristic< type >
 Type trait for the characteristic of the given field (template argument). More...
 
struct  carl::IntegralType< RationalType >
 Gives the corresponding integral type. More...
 
struct  carl::IntegralType< GFNumber< C > >
 
struct  carl::UnderlyingNumberType< T >
 Gives the underlying number type of a complex object. More...
 
class  carl::PreventConversion< T >
 

Namespaces

 carl
 carl is the main namespace for the library.
 

Macros

#define TRAIT_TRUE(name, type, groups)
 
#define TRAIT_FALSE(name, type, groups)
 
#define TRAIT_TYPE(name, _type, value, groups)
 

Typedefs

template<typename C >
using carl::IntegralTypeIfDifferent = typename std::enable_if<!std::is_same< C, typename IntegralType< C >::type >::value, typename IntegralType< C >::type >::type
 

Functions

template<typename T , typename T2 >
bool carl::fits_within (const T2 &t)
 

Detailed Description

Macro Definition Documentation

◆ TRAIT_FALSE

#define TRAIT_FALSE (   name,
  type,
  groups 
)
Value:
/** States that type does not have the trait name. @ingroup typetraits_ ## name groups */ \
template<> struct name<type>: std::false_type {};

Definition at line 86 of file typetraits.h.

◆ TRAIT_TRUE

#define TRAIT_TRUE (   name,
  type,
  groups 
)
Value:
/** States that type has the trait name. @ingroup typetraits_ ## name groups */ \
template<> struct name<type>: std::true_type {};

Definition at line 82 of file typetraits.h.

◆ TRAIT_TYPE

#define TRAIT_TYPE (   name,
  _type,
  value,
  groups 
)
Value:
/** States that name of _type is value. @ingroup typetraits_ ## name groups */ \
template<> struct name<_type>: carl::has_subtype<value> {};
This template is designed to provide types that are related to other types.
Definition: typetraits.h:75

Definition at line 90 of file typetraits.h.