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

boost::contract::condition_if — Select compilation and execution of a boolean functor template condition using a nullary boolean meta-function (not needed on C++17 compilers, use if constexpr instead).


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

template<typename Pred, typename Then> 
  bool condition_if(Then f, bool else_ = true);


This is equivalent to boost::contract::condition_if_c<Pred::value>(f, else_). Compile and execute the nullary boolean functor template call f() if and only if the specified nullary boolean meta-function Pred::value is true, otherwise trivially return else_ (true by default) at run-time.

See Also:

Assertion Requirements



Boolean value to return when Pred::value 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::value is true.

Template Parameters:


Nullary boolean meta-function selecting when the functor template call f() should be compiled and executed.


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