#include <iostream>
#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/comparison/equal.hpp>
#include <boost/preprocessor/arithmetic/mod.hpp>
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
#define fizzbuzz(z, x, _) \
BOOST_PP_IF(BOOST_PP_EQUAL(BOOST_PP_MOD(x, 15), 0), \
std::cout << "FizzBuzz" << std::endl;, \
BOOST_PP_IF(BOOST_PP_EQUAL(BOOST_PP_MOD(x, 3), 0), \
std::cout << "Fizz" << std::endl;, \
BOOST_PP_IF(BOOST_PP_EQUAL(BOOST_PP_MOD(x, 5), 0), \
std::cout << "Buzz" << std::endl;, \
std::cout << x << std::endl; \
) \
) \
) \
/**/
int main()
{
BOOST_PP_REPEAT_FROM_TO(1, 51, fizzbuzz, ~)
}