Boost C++ Libraries: Ticket #4407: remove_cv has numerous errors in Visual Studios 2010 https://svn.boost.org/trac10/ticket/4407 <p> remove_cv.hpp from the current trunk in Visual Studios 2010 produces all of the errors in the following log: </p> <p> c:\software\libraries\boost-trunk\trunk\boost\type_traits\remove_cv.hpp(55): error C2872: 'detail' : ambiguous symbol 1&gt; could be 'boost::detail' 1&gt; or 'boost::spirit::classic::detail' 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(80) : see reference to class template instantiation 'boost::remove_cv&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::eol_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(93) : see reference to class template instantiation 'boost::detail::is_pointer_impl&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::eol_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\detail\call_traits.hpp(81) : see reference to class template instantiation 'boost::is_pointer&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::eol_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\spirit\home\classic\core\composite\composite.hpp(118) : see reference to class template instantiation 'boost::call_traits&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::eol_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\spirit\home\classic\core\composite\alternative.hpp(50) : see reference to class template instantiation 'boost::spirit::classic::binary&lt;A,B,BaseT&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; A=boost::spirit::classic::eol_parser, 1&gt; B=boost::spirit::classic::end_parser, 1&gt; BaseT=boost::spirit::classic::parser&lt;boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\spirit\home\classic\utility\confix.hpp(76) : see reference to class template instantiation 'boost::spirit::classic::alternative&lt;A,B&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; A=boost::spirit::classic::eol_parser, 1&gt; B=boost::spirit::classic::end_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\property_tree\detail\json_parser_read.hpp(312) : see reference to class template instantiation 'boost::spirit::classic::confix_parser&lt;OpenT,ExprT,CloseT,CategoryT,NestedT,LexemeT&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; OpenT=boost::spirit::classic::impl::string_as_parser::type, 1&gt; ExprT=boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;, 1&gt; CloseT=boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;, 1&gt; CategoryT=boost::spirit::classic::unary_parser_category, 1&gt; NestedT=boost::spirit::classic::non_nested, 1&gt; LexemeT=boost::spirit::classic::is_lexeme 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\property_tree\json_parser.hpp(74) : see reference to function template instantiation 'void boost::property_tree::json_parser::read_json_internal&lt;Ptree&gt;(std::basic_istream&lt;_Elem,_Traits&gt; &amp;,Ptree &amp;,const std::string &amp;)' being compiled 1&gt; with 1&gt; [ 1&gt; Ptree=boost::property_tree::ptree, 1&gt; _Elem=char, 1&gt; _Traits=std::char_traits&lt;char&gt; 1&gt; ] 1&gt; c:\users\vincent\documents\visual studio 2010\projects\desertedsun\src\level.cpp(9) : see reference to function template instantiation 'void boost::property_tree::json_parser::read_json&lt;boost::property_tree::ptree&gt;(const std::string &amp;,Ptree &amp;,const std::locale &amp;)' being compiled 1&gt; with 1&gt; [ 1&gt; Ptree=boost::property_tree::ptree 1&gt; ] 1&gt;c:\software\libraries\boost-trunk\trunk\boost\type_traits\remove_cv.hpp(55): error C2872: 'detail' : ambiguous symbol 1&gt; could be 'boost::detail' 1&gt; or 'boost::spirit::classic::detail' 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(80) : see reference to class template instantiation 'boost::remove_cv&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::end_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(93) : see reference to class template instantiation 'boost::detail::is_pointer_impl&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::end_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\detail\call_traits.hpp(81) : see reference to class template instantiation 'boost::is_pointer&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::end_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\spirit\home\classic\core\composite\composite.hpp(120) : see reference to class template instantiation 'boost::call_traits&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::end_parser 1&gt; ] 1&gt;c:\software\libraries\boost-trunk\trunk\boost\type_traits\remove_cv.hpp(55): error C2872: 'detail' : ambiguous symbol 1&gt; could be 'boost::detail' 1&gt; or 'boost::spirit::classic::detail' 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(80) : see reference to class template instantiation 'boost::remove_cv&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::space_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(93) : see reference to class template instantiation 'boost::detail::is_pointer_impl&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::space_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\detail\call_traits.hpp(81) : see reference to class template instantiation 'boost::is_pointer&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::space_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\spirit\home\classic\core\composite\composite.hpp(118) : see reference to class template instantiation 'boost::call_traits&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::space_parser 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\spirit\home\classic\core\composite\alternative.hpp(50) : see reference to class template instantiation 'boost::spirit::classic::binary&lt;A,B,BaseT&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; A=boost::spirit::classic::space_parser, 1&gt; B=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;, 1&gt; BaseT=boost::spirit::classic::parser&lt;boost::spirit::classic::alternative&lt;boost::spirit::classic::space_parser,boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;&gt;&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\property_tree\detail\json_parser_read.hpp(312) : see reference to class template instantiation 'boost::spirit::classic::alternative&lt;A,B&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; A=boost::spirit::classic::space_parser, 1&gt; B=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt; 1&gt; ] 1&gt;c:\software\libraries\boost-trunk\trunk\boost\type_traits\remove_cv.hpp(55): error C2872: 'detail' : ambiguous symbol 1&gt; could be 'boost::detail' 1&gt; or 'boost::spirit::classic::detail' 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(80) : see reference to class template instantiation 'boost::remove_cv&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(93) : see reference to class template instantiation 'boost::detail::is_pointer_impl&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\detail\call_traits.hpp(81) : see reference to class template instantiation 'boost::is_pointer&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\spirit\home\classic\core\composite\composite.hpp(120) : see reference to class template instantiation 'boost::call_traits&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt; 1&gt; ] 1&gt;c:\software\libraries\boost-trunk\trunk\boost\type_traits\remove_cv.hpp(55): error C2872: 'detail' : ambiguous symbol 1&gt; could be 'boost::detail' 1&gt; or 'boost::spirit::classic::detail' 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(80) : see reference to class template instantiation 'boost::remove_cv&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::alternative&lt;boost::spirit::classic::space_parser,boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(93) : see reference to class template instantiation 'boost::detail::is_pointer_impl&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::alternative&lt;boost::spirit::classic::space_parser,boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\detail\call_traits.hpp(81) : see reference to class template instantiation 'boost::is_pointer&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::alternative&lt;boost::spirit::classic::space_parser,boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\spirit\home\classic\core\composite\composite.hpp(118) : see reference to class template instantiation 'boost::call_traits&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::alternative&lt;boost::spirit::classic::space_parser,boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\spirit\home\classic\core\composite\alternative.hpp(50) : see reference to class template instantiation 'boost::spirit::classic::binary&lt;A,B,BaseT&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; A=boost::spirit::classic::alternative&lt;boost::spirit::classic::space_parser,boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;&gt;, 1&gt; B=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;, 1&gt; BaseT=boost::spirit::classic::parser&lt;boost::spirit::classic::alternative&lt;boost::spirit::classic::alternative&lt;boost::spirit::classic::space_parser,boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;&gt;,boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;&gt;&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\property_tree\detail\json_parser_read.hpp(312) : see reference to class template instantiation 'boost::spirit::classic::alternative&lt;A,B&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; A=boost::spirit::classic::alternative&lt;boost::spirit::classic::space_parser,boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::alternative&lt;boost::spirit::classic::eol_parser,boost::spirit::classic::end_parser&gt;,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt;&gt;, 1&gt; B=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt; 1&gt; ] 1&gt;c:\software\libraries\boost-trunk\trunk\boost\type_traits\remove_cv.hpp(55): error C2872: 'detail' : ambiguous symbol 1&gt; could be 'boost::detail' 1&gt; or 'boost::spirit::classic::detail' 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(80) : see reference to class template instantiation 'boost::remove_cv&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\type_traits\is_pointer.hpp(93) : see reference to class template instantiation 'boost::detail::is_pointer_impl&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\detail\call_traits.hpp(81) : see reference to class template instantiation 'boost::is_pointer&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt; 1&gt; ] 1&gt; c:\software\libraries\boost-trunk\trunk\boost\spirit\home\classic\core\composite\composite.hpp(120) : see reference to class template instantiation 'boost::call_traits&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::spirit::classic::confix_parser&lt;boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::kleene_star&lt;boost::spirit::classic::anychar_parser&gt;,boost::spirit::classic::impl::string_as_parser::type,boost::spirit::classic::unary_parser_category,boost::spirit::classic::non_nested,boost::spirit::classic::is_lexeme&gt; 1&gt; ] </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/4407 Trac 1.4.3 John Maddock Thu, 08 Jul 2010 10:15:17 GMT <link>https://svn.boost.org/trac10/ticket/4407#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4407#comment:1</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/63738" title="Make all references to the detail:: namespace fully qualified so we ...">[63738]</a>) Make all references to the detail:: namespace fully qualified so we don't get ambiguities with other libraries. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/4407" title="#4407: Bugs: remove_cv has numerous errors in Visual Studios 2010 (closed: fixed)">#4407</a>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Thu, 08 Jul 2010 10:28:03 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/4407#comment:2 https://svn.boost.org/trac10/ticket/4407#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/63739" title="Make all references to the detail:: namespace fully qualified so we ...">[63739]</a>) Make all references to the detail:: namespace fully qualified so we don't get ambiguities with other libraries. Fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/4407" title="#4407: Bugs: remove_cv has numerous errors in Visual Studios 2010 (closed: fixed)">#4407</a>. </p> Ticket