Boost logo

Boost :

Subject: [boost] [parameter] 'develop' branch breaks tests with VC++
From: Edward Diener (eldiener_at_[hidden])
Date: 2014-06-25 10:51:44


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.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk