| Home | Libraries | People | FAQ | More

## 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).

## Synopsis

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

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

## Description

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

Parameters: |
`f` | Nullary boolean functor template. The functor template call `f()` is compiled and executed if and only if `Pred::value` is `true`.
`else_` | Boolean value to return when `Pred::value` is `false` (instead of compiling and executing the functor template call `f()`).
Template Parameters: |
`Pred` | Nullary boolean meta-function selecting when the functor template call `f()` should be compiled and executed.
Returns: | Boolean value returned by `f()` if the static predicate `Pred::value` is `true`. Otherwise, trivially return `else_`.