The BOOST_PP_EXPR_IF macro expands to its second argument if its first argument is non-zero or expands to nothing otherwise.

#### Usage

BOOST_PP_EXPR_IF(cond, expr)

#### Arguments

cond
  The condition that determines if the result is expr or nothing. Valid values range from 0 to BOOST_PP_LIMIT_MAG.
expr
  The result of the expansion if cond is non-zero.

#### Remarks

This macro performs a boolean conversion on its first argument. If that conversion is unnecessary, use BOOST_PP_EXPR_IIF instead.

#### See Also

- BOOST_PP_EXPR_IIF
- BOOST_PP_LIMIT_MAG

#### Requirements

Header: <boost/preprocessor/control/expr_if.hpp>

#### Sample Code

    #include <boost/preprocessor/control/expr_if.hpp>
    #include <boost/preprocessor/tuple/elem.hpp>

    #define CV(n) \
       BOOST_PP_EXPR_IF( \
          n, \
          BOOST_PP_TUPLE_ELEM( \
             4, n, \
             (..., const, volatile, const volatile) \
          ) \
       ) \
       /**/

    CV(0) // expands to nothing
    CV(1) // expands to const