[mpl] weird interaction between mpl::set and mpl::map headers

The following snippet #include <boost/mpl/set/set0.hpp> #include <boost/mpl/map.hpp> int main() { return 0; } produces the following in GCC 3.2: In file included from /usr/local/boost_1_33_0/boost/mpl/map/map0.hpp:18, from /usr/local/boost_1_33_0/boost/mpl/map/map10.hpp:19, from /usr/local/boost_1_33_0/boost/mpl/map/map20.hpp:19, from /usr/local/boost_1_33_0/boost/mpl/map.hpp:36, from mpl_iterator.cpp:2: /usr/local/boost_1_33_0/boost/mpl/map/aux_/contains_impl.hpp:34: no class template named `apply' in `struct boost::mpl::at_impl<boost::mpl::aux::map_tag>' /usr/local/boost_1_33_0/boost/mpl/map/aux_/contains_impl.hpp:35: `type' is not a class or namespace /usr/local/boost_1_33_0/boost/mpl/map/aux_/contains_impl.hpp:35: ISO C++ forbids declaration of `type name' with no type In file included from /usr/local/boost_1_33_0/boost/mpl/map/aux_/erase_key_impl. hpp:19, from /usr/local/boost_1_33_0/boost/mpl/map/aux_/erase_impl.hpp: 19, from /usr/local/boost_1_33_0/boost/mpl/map/map0.hpp:22, from /usr/local/boost_1_33_0/boost/mpl/map/map10.hpp:19, from /usr/local/boost_1_33_0/boost/mpl/map/map20.hpp:19, from /usr/local/boost_1_33_0/boost/mpl/map.hpp:36, from mpl_iterator.cpp:2: /usr/local/boost_1_33_0/boost/mpl/map/aux_/has_key_impl.hpp:33: no class template named `apply' in `struct boost::mpl::at_impl<boost::mpl::aux::map_tag>' /usr/local/boost_1_33_0/boost/mpl/map/aux_/has_key_impl.hpp:34: `type' is not a class or namespace /usr/local/boost_1_33_0/boost/mpl/map/aux_/has_key_impl.hpp:34: ISO C++ forbids declaration of `type name' with no type In file included from /usr/local/boost_1_33_0/boost/mpl/map/aux_/begin_end_impl. hpp:20, from /usr/local/boost_1_33_0/boost/mpl/map/map0.hpp:30, from /usr/local/boost_1_33_0/boost/mpl/map/map10.hpp:19, from /usr/local/boost_1_33_0/boost/mpl/map/map20.hpp:19, from /usr/local/boost_1_33_0/boost/mpl/map.hpp:36, from mpl_iterator.cpp:2: /usr/local/boost_1_33_0/boost/mpl/map/aux_/iterator.hpp:41: parse error before `<' token /usr/local/boost_1_33_0/boost/mpl/map/aux_/iterator.hpp:62: parse error before `<' token but if I reverse the order of the #includes, everything works OK. I suspect this problem is also showing in the GCC 3.4.x family. Thank you, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo
participants (1)
-
Joaquín Mª López Muñoz