Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::geometry::util::detail::calculation_type< Type, CalculationType, DefaultFloatingPointCalculationType, DefaultIntegralCalculationType > Struct Template Reference

#include <calculation_type.hpp>

Public Types

typedef boost::mpl::if_
< boost::is_void
< CalculationType >, typename
boost::mpl::if_
< boost::is_floating_point
< Type >, typename
select_most_precise
< DefaultFloatingPointCalculationType,
Type >::type, typename
select_most_precise
< DefaultIntegralCalculationType,
Type >::type >::type,
CalculationType >::type 
type
 

Public Member Functions

 BOOST_STATIC_ASSERT ((boost::is_fundamental< DefaultFloatingPointCalculationType >::type::value))
 
 BOOST_STATIC_ASSERT ((boost::is_fundamental< DefaultIntegralCalculationType >::type::value))
 

Detailed Description

template<typename Type, typename CalculationType, typename DefaultFloatingPointCalculationType, typename DefaultIntegralCalculationType>
struct boost::geometry::util::detail::calculation_type< Type, CalculationType, DefaultFloatingPointCalculationType, DefaultIntegralCalculationType >

Selects the most appropriate:

  • if calculation type is specified (not void), that one is used
  • else if type is non-fundamental (user defined e.g. ttmath), that one
  • else if type is floating point, the specified default FP is used
  • else it is integral and the specified default integral is used

Member Typedef Documentation

template<typename Type, typename CalculationType, typename DefaultFloatingPointCalculationType, typename DefaultIntegralCalculationType>
typedef boost::mpl::if_< boost::is_void<CalculationType>, typename boost::mpl::if_ < boost::is_floating_point<Type>, typename select_most_precise < DefaultFloatingPointCalculationType, Type >::type, typename select_most_precise < DefaultIntegralCalculationType, Type >::type >::type, CalculationType >::type boost::geometry::util::detail::calculation_type< Type, CalculationType, DefaultFloatingPointCalculationType, DefaultIntegralCalculationType >::type

Member Function Documentation

template<typename Type, typename CalculationType, typename DefaultFloatingPointCalculationType, typename DefaultIntegralCalculationType>
boost::geometry::util::detail::calculation_type< Type, CalculationType, DefaultFloatingPointCalculationType, DefaultIntegralCalculationType >::BOOST_STATIC_ASSERT ( (boost::is_fundamental< DefaultFloatingPointCalculationType >::type::value)  )
template<typename Type, typename CalculationType, typename DefaultFloatingPointCalculationType, typename DefaultIntegralCalculationType>
boost::geometry::util::detail::calculation_type< Type, CalculationType, DefaultFloatingPointCalculationType, DefaultIntegralCalculationType >::BOOST_STATIC_ASSERT ( (boost::is_fundamental< DefaultIntegralCalculationType >::type::value)  )

The documentation for this struct was generated from the following file: