#define BOOST_PROTO17_CONVERSION_OPERATOR_TEMPLATE #include "expression.hpp" template using term = boost::proto17::terminal; namespace bp17 = boost::proto17; namespace { void compile() { using namespace boost::proto17::literals; { bp17::placeholder<0> p0 = 0_p; } { bp17::placeholder<0> p0 = 0_p; term unity{1.0}; bp17::expression< bp17::expr_kind::plus, bp17::placeholder<0>, term > expr = p0 + unity; } { bp17::placeholder<0> p0 = 0_p; bp17::expression< bp17::expr_kind::plus, bp17::placeholder<0>, bp17::placeholder<1> > expr = p0 + 1_p; } } }