In testing out potential changes in Boost PP against other Boost libraries, to make sure those changes break no code, I noticed that running tests in the Boost parameter 'develop' branch against VC++ ( msvc-12.0 ) creates a number of compiler errors related to Boost PP. These errors in my tests look odd and I cannot figure out from what source they are happening: ...failed compile-c-c++ ..\..\..\bin.v2\libs\parameter\test\literate\predicate-requirements0.test\msvc-12.0\debug\threading-multi\predicate-requirements0.obj... compile-c-c++ ..\..\..\bin.v2\libs\parameter\test\literate\handling-out-parameters0.test\msvc-12.0\debug\threading-multi\handling-out-parameters0.obj handling-out-parameters0.cpp /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2121: '#' : invalid character : possibly the result of a macro expansion /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PP_IIF_BOOST_PP_BOOL_0' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : see reference to class template instantiation 'boost_param_params_649f<BoostParameterDummy>' being compiled /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2146: syntax error : missing ',' before identifier 'BOOST_PP_IIF_BOOST_PP_BOOL_BOOST_PP_DEC_BOOST_PP_SEQ_SIZE_required' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'graph' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2059: syntax error : ')' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PP_TUPLE_EAT_2' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C3861: 'BOOST_PP_IIF_BOOST_PP_BOOL_BOOST_PP_DEC_BOOST_PP_SEQ_SIZE_required': identifier not found /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PARAMETER_FLATTEN_SPEC' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C3861: 'required': identifier not found /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2143: syntax error : missing ',' before ')' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C3861: 'vertices': identifier not found /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C3861: 'get': identifier not found /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'index_map' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C3861: 'default_color_map': identifier not found /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C3861: 'num_vertices': identifier not found /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PP_TUPLE_EAT_4' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'line' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2143: syntax error : missing ',' before 'constant' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2143: syntax error : missing ',' before 'string' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'visitor' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2059: syntax error : ',' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C3861: 'optional': identifier not found /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PP_SEQ_FOR_EACH_P' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PP_SEQ_FOR_EACH_O' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PP_SEQ_FOR_EACH_M' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PARAMETER_FUNCTION_PARAMETERS_M' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2882: 'tag' : illegal use of namespace identifier in expression /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PP_SEQ_TAIL_I' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PP_SEQ_FOR_EACH_I_P' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PP_SEQ_FOR_EACH_I_O' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'BOOST_PP_SEQ_FOR_EACH_I_M' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2977: 'boost::parameter::parameters' : too many template arguments C:\Programming\VersionControl\modular-boost\boost/parameter/parameters.hpp(715) : see declaration of 'boost::parameter::parameters' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2955: 'boost::parameter::parameters' : use of class template requires template argument list C:\Programming\VersionControl\modular-boost\boost/parameter/parameters.hpp(715) : see declaration of 'boost::parameter::parameters' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2146: syntax error : missing ';' before identifier 'BOOST_PP_IIF_BOOST_PP_BOOL_BOOST_PP_IIF_BOOST_PP_BOOL_0' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2146: syntax error : missing ';' before identifier 'BOOST_PP_IIF_BOOST_PP_BOOL_BOOST_PP_DEC_BOOST_PP_SEQ_SIZE_required' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2899: typename cannot be used outside a template declaration /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2065: 'Args' : undeclared identifier /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2923: 'boost_param_result_649f' : 'Args' is not a valid template type argument for parameter 'Args' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2955: 'boost_param_result_649f' : use of class template requires template argument list /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : see declaration of 'boost_param_result_649f' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2143: syntax error : missing ';' before '{' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2447: '{' : missing function header (old-style formal list?) /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2146: syntax error : missing ',' before identifier 'BOOST_PP_IIF_BOOST_PP_BOOL_' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2993: 'Args' : illegal type for non-type template parameter 'BOOST_PP_IIF_BOOST_PP_BOOL_0' /home/daniel/dev/boost/trunk/libs/parameter/doc/index.rst(649) : error C2988: unrecognizable template declaration/definition If I test against the 'master' branch of parameter these errors do not occur. If I run the tests using gcc these errors do not occur. I believe changes that were made to the 'develop' branch of parameter are causing these errors. Furthermore I do not see these errors in the 'develop'regression tests for parameter, so i am puzzled. Any help would be appreciated.