[parameter] 'develop' branch breaks tests with VC++
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.
On 25 June 2014 15:51, Edward Diener
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.
The failing tests are the "literate" tests, which are only on the develop branch, and aren't included in the main test run. My guess is that Visual C++ doesn't like '#line' appearing in the middle of a macro call in 'test/literate/handling-out-parameters0.cpp'.
On 6/25/2014 12:12 PM, Daniel James wrote:
On 25 June 2014 15:51, Edward Diener
wrote: 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.
The failing tests are the "literate" tests, which are only on the develop branch, and aren't included in the main test run. My guess is that Visual C++ doesn't like '#line' appearing in the middle of a macro call in 'test/literate/handling-out-parameters0.cpp'.
Thanks for pointing out to me what is happening.
participants (2)
-
Daniel James
-
Edward Diener