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


Struct template call_if_statement

boost::contract::call_if_statement — Select compilation and execution of functor template calls using a static boolean predicate (not needed on C++17 compilers, use if constexpr instead).


// In header: <boost/contract/call_if.hpp>

template<bool Pred, typename Then, typename ThenResult = internal_type> 
struct call_if_statement {


This class template has no members because it is never used directly, it is only used via its specializations. Usually this class template is instantiated only via the return value of boost::contract::call_if and boost::contract::call_if_c.

See Also:

Assertion Requirements

Template Parameters

  1. bool Pred

    Static boolean predicate that selects which functor template call to compile and execute.

  2. typename Then

    Type of the functor template to call if the static predicate Pred is true.

  3. typename ThenResult = internal_type

    Return type of then-branch functor template call (this is usually automatically deduced by this library so it is never explicitly specified by the user, and that is why it is often marked as internal_type in this documentation).