c++ - Conflict between boost:type_erasure and boost::iterator_facade -
consider simple program:
#include <boost/type_erasure/is_placeholder.hpp> #include <boost/iterator/iterator_adaptor.hpp> int main() { return 0; }
this fails compile with:
include/boost/type_erasure/is_placeholder.hpp:31:33: error: reference 'use_default' ambiguous struct is_placeholder< ::boost::use_default> : ::boost::mpl::false_ {}; ^ include/boost/iterator/iterator_adaptor.hpp:44:18: note: candidate found name lookup 'boost::use_default' using iterators::use_default; ^ include/boost/type_erasure/is_placeholder.hpp:21:8: note: candidate found name lookup 'boost::use_default' struct use_default; ^ 1 error generated.
i don't want go , change header files. how around issue?
a temporary solution replace
struct use_default;
in `boost/type_erasure/is_placeholder.hpp' with
namespace iterators { struct use_default; } using iterators::use_default;
which found in `boost/iterator/iterator_adaptor.hpp'.
Comments
Post a Comment