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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Function template condition_if_c

boost::contract::condition_if_c — Select compilation and execution of a boolean functor template condition 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> 
  bool condition_if_c(Then f, bool else_ = true);


Compile and execute the nullary boolean functor template call f() if and only if the specified static boolean predicate Pred is true, otherwise trivially return else_ (true by default) at run-time.

A call to boost::contract::condition_if_c<Pred>(f, else_) is logically equivalent to boost::contract::call_if_c<Pred>(f, [] { return else_; }) (but its internal implementation is optimized and it does not actually use call_if_c).

See Also:

Assertion Requirements



Boolean value to return when Pred is false (instead of compiling and executing the functor template call f()).


Nullary boolean functor template. The functor template call f() is compiled and executed if and only if Pred is true.

Template Parameters:


Static boolean predicate selecting when the functor template call f() should be compiled and executed.


Boolean value returned by f() if the static predicate Pred is true. Otherwise, trivially return else_.