Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Front Page / Metafunctions / Type Selection / eval_if_c



      bool c
    , typename F1
    , typename F2
struct eval_if_c
    typedef unspecified type;


Evaluates one of its two nullary-metafunction arguments, F1 or F2, depending on the value of integral constant c. eval_if_c<c,f1,f2>::type is a shorcut notation for eval_if< bool_<c>,f1,f2 >::type.


#include <boost/mpl/eval_if.hpp>


Parameter Requirement Description
c An integral constant An evaluation condition.
F1, F2 Nullary Metafunction Metafunctions to select for evaluation from.

Expression semantics

For any integral constant c and nullary Metafunctions f1, f2:

typedef eval_if_c<c,f1,f2>::type t;
Return type:Any type.
Semantics:Equivalent to typedef eval_if< bool_<c>,f1,f2 >::type t;


typedef eval_if_c< true, identity<char>, identity<long> >::type t1;
typedef eval_if_c< false, identity<char>, identity<long> >::type t2;

BOOST_MPL_ASSERT(( is_same<t1,char> ));
BOOST_MPL_ASSERT(( is_same<t2,long> ));

See also

Metafunctions, Integral Constant, eval_if, if_, bool_