
Hi, I suppose this is mostly addressed to Ion. It appears that containers in the move library in the boost sandbox can't coexist with containers from the boost.interprocess library. This isn't a problem for me currently (I can just use the containers from the move library), but it may be an indication of a larger problem with either or both libraries, so I figured it'd be worth sharing. I wasn't sure if this would be an appropriate trac ticket to file under boost.interprocess, as it involves technically non-boost code, but I can certainly do that if desired. So to be specific, the following program fails to compile (MSVC 2009, boost 1.39, include paths are boost root and $(BOOST_SVN)/boost-sandbox/move): -------- #include <boost/interprocess/containers/vector.hpp> #include <boost/container/vector.hpp> int main(int argc, char* argv[]) { boost::interprocess::vector< int > v1; // line 6 boost::container::vector< int > v2; // line 7 return 0; } -------- The compiler output is: -------- 1>.\main.cpp(7) : error C3083: 'container': the symbol to the left of a '::' must be a type 1>.\main.cpp(7) : error C2039: 'vector' : is not a member of 'boost' 1>.\main.cpp(7) : error C2065: 'vector' : undeclared identifier 1>.\main.cpp(7) : error C2062: type 'int' unexpected -------- Removing either the interprocess vector (include directive, variable declaration) pair or the move vector (include directive, variable declaration) pair produces a compilable program. Reversing the order of the include directives gives a different compiler error: -------- 1>E:\boost_1_39_0\boost/interprocess/containers/vector.hpp(24) : error C3083: 'interprocess_container': the symbol to the left of a '::' must be a type 1>E:\boost_1_39_0\boost/interprocess/containers/vector.hpp(24) : error C2039: 'vector' : is not a member of 'boost' 1>E:\boost_1_39_0\boost/interprocess/containers/vector.hpp(24) : error C2873: 'vector' : symbol cannot be used in a using-declaration 1>.\main.cpp(6) : error C2039: 'vector' : is not a member of 'boost::interprocess' 1>.\main.cpp(6) : error C2065: 'vector' : undeclared identifier 1>.\main.cpp(6) : error C2062: type 'int' unexpected -------- Any idea what's going on here? Am I just doing something really boneheaded, e.g., with the include paths? Additionally, I have a small suggestion for the move library. It would be somewhat more convenient if boost::is_movable<T> had a nested type typedef, e.g., if it inherited from mpl::bool_<...> or integral_constant< bool, ...>. As it stands, I don't think it can be used directly in MPL expressions such as mpl::and_. Thanks in advance, - Jeff