------- Comment #3 from tromey at gcc dot gnu dot org 2008-07-06 03:25 ------- Sorry, I somehow missed the followup comment.
>> #elif defined(BOOST_PP_ITERATION_DEPTH) && BOOST_PP_ITERATION_DEPTH() == 1 The expression has to be valid after preprocessing. So, if BOOST_PP_ITERATION_DEPTH is not defined, this will yield an error. >> it is confusing that #elif behaves more like "#if" and not like "#else\n#if" I agree, but by my reading this is what the standard actually says. I am open to arguments contrariwise, or to rulings from gcc developers more expert at standardese than I. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36453