Commit f1929a56 authored by Christian Godenschwager's avatar Christian Godenschwager Committed by Michael Kuron
Browse files

add user defined literal _r for real_t

parent 1aa0814c
......@@ -163,6 +163,8 @@ typedef double real_t;
typedef float real_t;
#endif
inline real_t operator"" _r( long double t ) { return static_cast< real_t >(t); }
inline real_t operator"" _r( unsigned long long int t ) { return static_cast< real_t >(t); }
template< typename T > inline real_t real_c ( T t ) { return numeric_cast< real_t >(t); } ///< cast to type real_t using "real_c(x)"
template< typename T > inline double double_c( T t ) { return numeric_cast< double >(t); } ///< cast to type double
template< typename T > inline float float_c ( T t ) { return numeric_cast< float > (t); } ///< cast to type float
......
......@@ -52,5 +52,9 @@ int main( int /*argc*/, char** /*argv*/ )
WALBERLA_CHECK_EQUAL( math::int_ld< 2 >::exp, 1 );
WALBERLA_CHECK_EQUAL( math::int_ld< 1 >::exp, 0 );
WALBERLA_CHECK_IDENTICAL(1.23456_r, real_c(1.23456));
WALBERLA_CHECK_IDENTICAL(1_r, real_c(1));
WALBERLA_CHECK_IDENTICAL(-1_r, real_c(-1));
return EXIT_SUCCESS;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment