boostorg / boostorg/phoenix

VC7.1 errors when including `<boost/phoenix.hpp>`

Open
#91 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
33
Forks
51
PR merge metrics
No merged PRs in 30d

Description

I couldn't see any explicit mention of what compilers are supported or tested.

Errors below from boost 1.55 (I get a different set of errors in 1.72, they are at the bottom).
Problem is with the definition of the placeholders it appears.

Code is just:
```cpp
#include
```

Command line:
`cl.exe "test.cpp" /Fo"test.obj" /GR /MD /Gy /W3 /EHsc /Gd /Gm- /arch:SSE2 /Zm200 /DWIN32 /D_WINDOWS /D_USRDLL /I"Microsoft Visual C++ Toolkit 2003/include" /I"Microsoft SDKs\Windows\v6.0/Include" /I"Microsoft SDKs\Windows\v6.0/Include/mfc" /nologo /Z7 /Od /RTC1 /D_DEBUG /c /I"boost_1_55_0"`

Output:
```
test.cpp
boost\proto\detail\preprocessed\poly_function_funop.hpp(12) : error C2976: 'boost::proto::functional::has_env_var::impl' : too few template arguments
with
[
Key=boost::proto::envns_::transforms_type
]
boost\proto\transform\env.hpp(254) : see declaration of 'boost::proto::functional::has_env_var::impl'
with
[
Key=boost::proto::envns_::transforms_type
]
boost\utility\result_of.hpp(187) : see reference to class template instantiation 'boost::proto::detail::poly_function::result' being compiled
with
[
Derived=boost::proto::functional::has_env_var,
Sig=boost::proto::functional::has_env_var (boost::phoenix::result_of::actions>::type )
]
boost\utility\result_of.hpp(194) : see reference to class template instantiation 'boost::detail::result_of_nested_result' being compiled
with
[
F=boost::remove_cv>::type,
FArgs=boost::proto::functional::has_env_var (boost::phoenix::result_of::actions>::type )
]
boost\utility\detail\result_of_iterate.hpp(37) : see reference to class template instantiation 'boost::detail::tr1_result_of_impl' being compiled
with
[
F=boost::remove_cv>::type,
FArgs=boost::remove_cv>::type (boost::phoenix::result_of::actions>::type ),
HasResultType=false
]
boost\utility\detail\result_of_iterate.hpp(160) : see reference to class template instantiation 'boost::tr1_result_of' being compiled
with
[
F=boost::proto::functional::has_env_var (boost::phoenix::result_of::actions>::type )
]
boost\proto\transform\env.hpp(367) : see reference to class template instantiation 'boost::result_of' being compiled
with
[
F=boost::proto::functional::has_env_var (boost::phoenix::result_of::actions>::type )
]
boost\proto\transform\when.hpp(189) : see reference to class template instantiation 'boost::proto::result_of::has_env_var' being compiled
with
[
Env=boost::phoenix::result_of::actions>::type ,
Key=boost::proto::envns_::transforms_type
]
boost\proto\matches.hpp(762) : see reference to class template instantiation 'boost::proto::when::impl' being compiled
with
[
Grammar=boost::phoenix::rule::argument,
PrimitiveTransform=boost::proto::external_transform,
Expr=const boost::phoenix::actor>::base_type>::proto_base_expr &,
State=boost::phoenix::result_of::env>::type ,
Data=boost::phoenix::result_of::actions>::type
]
boost\proto\matches.hpp(836) : see reference to class template instantiation 'boost::proto::or_::impl' being compiled
with
[
G0=boost::phoenix::enable_rule,
G1=boost::phoenix::enable_rule,
G2=boost::phoenix::enable_rule,
Expr=const boost::phoenix::actor>::base_type>::proto_base_expr &,
State=boost::phoenix::result_of::env>::type ,
Data=boost::phoenix::result_of::actions>::type
]
boost\phoenix\core\meta_grammar.hpp(66) : see reference to class template instantiation 'boost::proto::switch_::impl' being compiled
with
[
Cases=boost::phoenix::meta_grammar,
Expr=const boost::proto::exprns_::basic_expr>,0> &,
State=boost::phoenix::result_of::env>::type,
Data=boost::phoenix::result_of::actions>::type
]
boost\phoenix\core\is_nullary.hpp(123) : see reference to class template instantiation 'boost::phoenix::evaluator::impl' being compiled
with
[
Expr=const boost::phoenix::actor>::base_type>::proto_base_expr &,
State=boost::phoenix::vector2,
Data=boost::proto::envns_::empty_env
]
boost\phoenix\core\detail\preprocessed\actor_result_of_10.hpp(34) : see reference to class template instantiation 'boost::phoenix::result_of::is_nullary' being compiled
with
[
Expr=boost::phoenix::actor>::base_type>::proto_base_expr
]
boost\phoenix\core\actor.hpp(239) : see reference to class template instantiation 'boost::phoenix::result_of::actor' being compiled
with
[
Expr=boost::phoenix::actor>::base_type>::proto_base_expr
]
boost\phoenix\core\preprocessed\argument_predefined_10.hpp(13) : see reference to class template instantiation 'boost::phoenix::actor' being compiled
with
[
Expr=boost::phoenix::expression::terminal>::base_type
]
boost\proto\detail\preprocessed\poly_function_funop.hpp(12) : error C2955: 'boost::proto::functional::has_env_var::impl' : use of class template requires template argument list
with
[
Key=boost::proto::envns_::transforms_type
]
boost\proto\transform\env.hpp(254) : see declaration of 'boost::proto::functional::has_env_var::impl'
with
[
Key=boost::proto::envns_::transforms_type
]
boost\proto\transform\env.hpp(368) : fatal error C1903: unable to recover from previous error(s); stopping compilation
```

Errors I get with 1.72:
```
test.cpp
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(35) : error C2975: 'boost::fusion::detail::result_of_it_fold' : invalid template argument for 'function-parameter', compile-time evaluatable constant expression expected
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(27) : see declaration of 'boost::fusion::detail::result_of_it_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(37) : error C3855: 'boost::fusion::detail::result_of_it_fold': template parameter 'SeqSize' is incompatible with the declaration
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(37) : error C2976: 'boost::fusion::detail::result_of_it_fold' : too few template arguments
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(37) : see declaration of 'boost::fusion::detail::result_of_it_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(65) : error C2976: 'boost::fusion::detail::result_of_it_fold' : too few template arguments
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(65) : see declaration of 'boost::fusion::detail::result_of_it_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(68) : error C2955: 'boost::fusion::detail::result_of_it_fold' : use of class template requires template argument list
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(65) : see declaration of 'boost::fusion::detail::result_of_it_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(68) : error C2039: 'type' : is not a member of 'boost::fusion::detail::result_of_it_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(65) : see declaration of 'boost::fusion::detail::result_of_it_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(74) : error C2146: syntax error : missing ';' before identifier 'it_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(74) : error C2433: 'type' : 'inline' not permitted on data declarations
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(74) : error C2501: 'type' : missing storage-class or type specifiers
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(74) : error C2061: syntax error : identifier 'It'
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(88) : error C3203: 'result_of_it_fold' : class template invalid as template argument for template parameter 'T', expected a real type
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(34) : error C2975: 'boost::fusion::detail::result_of_it_reverse_fold' : invalid template argument for 'function-parameter', compile-time evaluatable constant expression expected
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(26) : see declaration of 'boost::fusion::detail::result_of_it_reverse_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(36) : error C3855: 'boost::fusion::detail::result_of_it_reverse_fold': template parameter 'SeqSize' is incompatible with the declaration
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(36) : error C2976: 'boost::fusion::detail::result_of_it_reverse_fold' : too few template arguments
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(36) : see declaration of 'boost::fusion::detail::result_of_it_reverse_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(64) : error C2976: 'boost::fusion::detail::result_of_it_reverse_fold' : too few template arguments
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(64) : see declaration of 'boost::fusion::detail::result_of_it_reverse_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(67) : error C2955: 'boost::fusion::detail::result_of_it_reverse_fold' : use of class template requires template argument list
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(64) : see declaration of 'boost::fusion::detail::result_of_it_reverse_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(67) : error C2039: 'type' : is not a member of 'boost::fusion::detail::result_of_it_reverse_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(64) : see declaration of 'boost::fusion::detail::result_of_it_reverse_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(73) : error C2146: syntax error : missing ';' before identifier 'it_reverse_fold'
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(73) : error C2433: 'type' : 'inline' not permitted on data declarations
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(73) : error C2501: 'type' : missing storage-class or type specifiers
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(73) : error C2086: 'int boost::fusion::detail::type' : redefinition
boost\fusion\algorithm\iteration\detail\preprocessed\fold.hpp(74) : see declaration of 'boost::fusion::detail::type'
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(73) : error C2061: syntax error : identifier 'It'
boost\fusion\algorithm\iteration\detail\preprocessed\reverse_fold.hpp(87) : error C3203: 'result_of_it_reverse_fold' : class template invalid as template argument for template parameter 'T', expected a real type
Microsoft Visual C++ Toolkit 2003\include\ostream(604) : fatal error C1903: unable to recover from previous error(s); stopping compilation
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.