Please add to boost/type_traits/intrinsics.hpp

Please add to boost/type_traits/intrinsics.hpp the following slice: ---------------------------- #if defined(__DMC__) && (__DMC__ >= 0x848) // For Digital Mars C++, www.digitalmars.com # define BOOST_IS_UNION(T) (__typeinfo(T) & 0x400) # define BOOST_IS_POD(T) (__typeinfo(T) & 0x800) # define BOOST_IS_EMPTY(T) (__typeinfo(T) & 0x1000) # define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__typeinfo(T) & 0x10) # define BOOST_HAS_TRIVIAL_COPY(T) (__typeinfo(T) & 0x20) # define BOOST_HAS_TRIVIAL_ASSIGN(T) (__typeinfo(T) & 0x40) # define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__typeinfo(T) & 0x8) # define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__typeinfo(T) & 0x80) # define BOOST_HAS_NOTHROW_COPY(T) (__typeinfo(T) & 0x100) # define BOOST_HAS_NOTHROW_ASSIGN(T) (__typeinfo(T) & 0x200) # define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) (__typeinfo(T) & 0x4) # define BOOST_HAS_TYPE_TRAITS_INTRINSICS #endif ----------------------------- which will enable better boost support for Digital Mars C++. Thanks! -Walter Bright Digital Mars

Walter Bright wrote:
Please add to boost/type_traits/intrinsics.hpp the following slice:
I'm seeing a few errors after that change, first of all, is_pod appears not to be improved by the change: is_pod_test.cpp:156: <note>The expression: "::boost::is_pod<empty_POD_UDT>::value" did not have the value we wish it to have (found 0, expected 1)</note> is_pod_test.cpp:157: <note>The expression: "::boost::is_pod<POD_UDT>::value" did not have the value we wish it to have (found 0, expected 1)</note> is_pod_test.cpp:158: <note>The expression: "::boost::is_pod<POD_union_UDT>::value" did not have the value we wish it to have (found 0, expected 1)</note> is_pod_test.cpp:159: <note>The expression: "::boost::is_pod<empty_POD_union_UDT> ::value" did not have the value we wish it to have (found 0, expected 1)</note> But there are also compiler errors from some of the tests: $ dmc -I../../../ has_trivial_copy_test.cpp ../../../boost/type_traits/has_trivial_copy.hpp(37) : Error: voids have no value ; ctors, dtors and invariants have no return value --- errorlevel 1 John Maddock@fuji /cygdrive/c/data/boost/develop/boost/libs/type_traits/test $ dmc -I../../../ has_trivial_destructor_test.cpp ../../../boost/type_traits/has_trivial_destructor.hpp(31) : Error: voids have no value; ctors, dtors and invariants have no return value --- errorlevel 1 Which arise from testing volatile qualified types. John Maddock.
participants (2)
-
John Maddock
-
Walter Bright