
On Jul 14, 2008, at 11:31 AM, J. van der Wulp wrote:
There seems to be a problem with using Boost.Integer in combination with anything that uses boost/detail/numeric_traits.hpp (development). The latter also defines a struct with name integer_traits that is not compatible with the one declared in Boost.Integer.
The problem can be reproduced by including boost/graph/ adjacency_list.hpp first and boost/integer.hpp as in:
#include <boost/graph/adjacency_list.hpp> #include <boost/integer.hpp>
int main() { return 0; }
Swapping the include directives avoids the problem.
Does it have to be <boost/integer.hpp>, or will using <boost/ integer_traits.hpp> directly (without also including integer.hpp) also cause the error? (Check both relative orders, of course.) I wonder if changing numeric_traits to: //========================================= template <class Number> struct numeric_traits { typedef typename ::boost::detail::integer_traits<Number>::difference_type difference_type; }; //========================================= will make a difference. The extra qualification should specify exactly which "integer_traits" is used. (It was unqualified before, so maybe the compiler grabs boost::integer_traits if it doesn't know about boost::detail::integer_traits.) -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com