The BOOST_PP_MUL macro expands to the product of its arguments.

Usage

BOOST_PP_MUL(x, y)

Arguments

x
The multiplicand of the operation.  Valid values range from 0 to BOOST_PP_LIMIT_MAG.
y
The multiplier of the operation.  Valid values range from 0 to BOOST_PP_LIMIT_MAG.

Remarks

If the product of x and y is greater than BOOST_PP_LIMIT_MAG, the result is saturated to BOOST_PP_LIMIT_MAG.
Previously, this macro could not be used inside BOOST_PP_WHILE.  There is no longer any such restriction.  It is more efficient, however, to use BOOST_PP_MUL_D in such a situation.
This macro is the most efficient when x is less than or equal to y.  However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.  In other words, x should be the value that is most likely to be the largest of the two operands.

See Also

Requirements

Header:  <boost/preprocessor/arithmetic/mul.hpp>

Sample Code

#include <boost/preprocessor/arithmetic/mul.hpp>

BOOST_PP_MUL(4, 4) // expands to 16