Boost logo

Boost :

Subject: [boost] [1.41.0] [integer] integer.hpp does not compile in MSVC 8.0 with /Za option on
From: Adam Badura (abadura_at_[hidden])
Date: 2009-11-22 05:21:41


    An empty CPP file containing only inclusion of <boost/integer.hpp>:

---------------
#include <boost/integer.hpp>

---------------

does not compile in MS Visual Studio 8.0 Standard when /Za option ("Disable
Language Extensions") is used. The output is following:

---------------
D:\Libraries\boost_1_41_0\boost/integer_fwd.hpp(70) : error C2039:
'long_long_type' : is not a member of 'boost'
D:\Libraries\boost_1_41_0\boost/integer_fwd.hpp(70) : error C2065:
'long_long_type' : undeclared identifier
D:\Libraries\boost_1_41_0\boost/integer_fwd.hpp(70) : error C2913: explicit
specialization; 'boost::integer_traits' is not a specialization of a class
template
D:\Libraries\boost_1_41_0\boost/integer_fwd.hpp(73) : error C2913: explicit
specialization; 'boost::integer_traits' is not a specialization of a class
template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(67) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(73) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(79) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(85) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(119) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(126) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(132) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(138) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(144) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(150) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer_traits.hpp(156) : error C2913:
explicit specialization; 'boost::integer_traits' is not a specialization of
a class template
D:\Libraries\boost_1_41_0\boost/integer.hpp(88) : error C2065: 'const_max' :
undeclared identifier
        D:\Libraries\boost_1_41_0\boost/integer.hpp(94) : see reference to
class template instantiation 'boost::int_max_value_t<MaxValue>' being
compiled
D:\Libraries\boost_1_41_0\boost/integer.hpp(89) : error C2065: 'const_max' :
undeclared identifier
D:\Libraries\boost_1_41_0\boost/integer.hpp(90) : error C2065: 'const_max' :
undeclared identifier
D:\Libraries\boost_1_41_0\boost/integer.hpp(91) : error C2065: 'const_max' :
undeclared identifier
D:\Libraries\boost_1_41_0\boost/integer.hpp(101) : error C2065: 'const_min'
: undeclared identifier
        D:\Libraries\boost_1_41_0\boost/integer.hpp(107) : see reference to
class template instantiation 'boost::int_min_value_t<MinValue>' being
compiled
D:\Libraries\boost_1_41_0\boost/integer.hpp(102) : error C2065: 'const_min'
: undeclared identifier
D:\Libraries\boost_1_41_0\boost/integer.hpp(103) : error C2065: 'const_min'
: undeclared identifier
D:\Libraries\boost_1_41_0\boost/integer.hpp(104) : error C2065: 'const_min'
: undeclared identifier
D:\Libraries\boost_1_41_0\boost/integer.hpp(116) : error C2065: 'const_max'
: undeclared identifier
        D:\Libraries\boost_1_41_0\boost/integer.hpp(122) : see reference to
class template instantiation 'boost::uint_value_t<Value>' being compiled
D:\Libraries\boost_1_41_0\boost/integer.hpp(117) : error C2065: 'const_max'
: undeclared identifier
D:\Libraries\boost_1_41_0\boost/integer.hpp(118) : error C2065: 'const_max'
: undeclared identifier
D:\Libraries\boost_1_41_0\boost/integer.hpp(119) : error C2065: 'const_max'
: undeclared identifier
---------------

    I suppose this happens to other editions as well. Also it seems that the
same happens with 2005 version.
    1.40 version had the same problem and I reported it but it seems no one
cared about it.

    Adam Badura


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk