forked from boostorg/type_traits
Added support for the new Borland 6.0 compiler.
[SVN r21036]
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
|
||||
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// as to its suitability for any purpose.
|
||||
//
|
||||
// See http://www.boost.org for most recent version including documentation.
|
||||
@ -19,7 +19,7 @@ namespace boost {
|
||||
|
||||
namespace detail {
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
|
||||
//
|
||||
// For some reason this implementation stops Borlands compiler
|
||||
// from dropping cv-qualifiers, it still fails with references
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// as to its suitability for any purpose.
|
||||
//
|
||||
// See http://www.boost.org for most recent version including documentation.
|
||||
@ -77,9 +77,9 @@ BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const volatile,void const
|
||||
|
||||
BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_reference,T,typename detail::add_reference_impl<T>::type)
|
||||
|
||||
// agurt, 07/mar/03: workaround Borland's ill-formed sensitivity to an additional
|
||||
// agurt, 07/mar/03: workaround Borland's ill-formed sensitivity to an additional
|
||||
// level of indirection, here
|
||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561))
|
||||
#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
||||
BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
|
||||
#endif
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
// (C) Copyright John Maddock 2000.
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// as to its suitability for any purpose.
|
||||
|
||||
#ifndef BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
|
||||
@ -18,7 +18,7 @@
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4121) // alignment is sensitive to packing
|
||||
#endif
|
||||
#ifdef __BORLANDC__
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
|
||||
#pragma option push -Vx- -Ve-
|
||||
#endif
|
||||
|
||||
@ -86,7 +86,7 @@ BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const volatile,0)
|
||||
|
||||
} // namespace boost
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
|
||||
#pragma option pop
|
||||
#endif
|
||||
#ifdef BOOST_MSVC
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// as to its suitability for any purpose.
|
||||
//
|
||||
// See http://www.boost.org for most recent version including documentation.
|
||||
@ -19,7 +19,7 @@
|
||||
// it needs to be declared __cdecl to suppress compiler
|
||||
// warnings from MS and Borland compilers (this *must*
|
||||
// appear before we include is_same.hpp below):
|
||||
#if defined(BOOST_MSVC) || defined(__BORLANDC__)
|
||||
#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32))
|
||||
# define BOOST_TT_DECL __cdecl
|
||||
#else
|
||||
# define BOOST_TT_DECL /**/
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
// (C) Copyright Rani Sharoni 2003.
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// as to its suitability for any purpose.
|
||||
//
|
||||
// See http://www.boost.org for most recent version including documentation.
|
||||
@ -24,7 +24,7 @@ namespace boost {
|
||||
|
||||
namespace detail {
|
||||
|
||||
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)) \
|
||||
#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x570) \
|
||||
&& !BOOST_WORKAROUND(__SUNPRO_CC , BOOST_TESTED_AT(0x540)) \
|
||||
&& !BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
|
||||
// The EDG version number is a lower estimate.
|
||||
|
@ -36,7 +36,7 @@ namespace boost {
|
||||
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::cv_traits_imp<T*>::is_const)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T&,false)
|
||||
|
||||
#if defined(__BORLANDC__)
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
|
||||
// these are illegal specialisations; cv-qualifies applied to
|
||||
// references have no effect according to [8.3.2p1],
|
||||
// C++ Builder requires them though as it treats cv-qualified
|
||||
@ -78,7 +78,7 @@ struct is_const_helper<false,false>
|
||||
BOOST_STATIC_CONSTANT(bool, value = (
|
||||
sizeof(detail::yes_type) == sizeof(detail::is_const_tester(t))
|
||||
));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
template <>
|
||||
@ -90,7 +90,7 @@ struct is_const_helper<false,true>
|
||||
BOOST_STATIC_CONSTANT(bool, value = (
|
||||
sizeof(detail::yes_type) == sizeof(detail::is_const_tester(&t))
|
||||
));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
@ -99,7 +99,7 @@ struct is_const_impl
|
||||
is_reference<T>::value
|
||||
, is_array<T>::value
|
||||
>::template result_<T>
|
||||
{
|
||||
{
|
||||
};
|
||||
|
||||
BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void,false)
|
||||
|
@ -3,13 +3,13 @@
|
||||
// Copyright (C) 2000 Jeremy Siek (jsiek@lsc.nd.edu)
|
||||
// Copyright (C) 1999, 2000 Jaakko J<>rvi (jaakko.jarvi@cs.utu.fi)
|
||||
//
|
||||
// Permission to copy and use this software is granted,
|
||||
// provided this copyright notice appears in all copies.
|
||||
// Permission to modify the code and to distribute modified code is granted,
|
||||
// provided this copyright notice appears in all copies, and a notice
|
||||
// Permission to copy and use this software is granted,
|
||||
// provided this copyright notice appears in all copies.
|
||||
// Permission to modify the code and to distribute modified code is granted,
|
||||
// provided this copyright notice appears in all copies, and a notice
|
||||
// that the code was modified is included with the copyright notice.
|
||||
//
|
||||
// This software is provided "as is" without express or implied warranty,
|
||||
// This software is provided "as is" without express or implied warranty,
|
||||
// and with no claim as to its suitability for any purpose.
|
||||
//
|
||||
|
||||
@ -99,12 +99,12 @@ struct is_convertible_impl
|
||||
};
|
||||
|
||||
static From _m_from;
|
||||
static bool const value = sizeof( checker<To>::_m_check(_m_from) )
|
||||
static bool const value = sizeof( checker<To>::_m_check(_m_from) )
|
||||
== sizeof(::boost::type_traits::yes_type);
|
||||
#pragma option pop
|
||||
};
|
||||
|
||||
#elif defined(__GNUC__) || defined(__BORLANDC__)
|
||||
#elif defined(__GNUC__) || defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
|
||||
// special version for gcc compiler + recent Borland versions
|
||||
// note that this does not pass UDT's through (...)
|
||||
|
||||
@ -124,7 +124,7 @@ template <typename From, typename To>
|
||||
struct is_convertible_basic_impl
|
||||
{
|
||||
static From _m_from;
|
||||
static bool const value = sizeof( detail::checker<To>::_m_check(_m_from, 0) )
|
||||
static bool const value = sizeof( detail::checker<To>::_m_check(_m_from, 0) )
|
||||
== sizeof(::boost::type_traits::yes_type);
|
||||
};
|
||||
|
||||
@ -152,7 +152,7 @@ struct is_convertible_basic_impl
|
||||
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
|
||||
static From _m_from;
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, value =
|
||||
BOOST_STATIC_CONSTANT(bool, value =
|
||||
sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type)
|
||||
);
|
||||
};
|
||||
@ -160,7 +160,7 @@ struct is_convertible_basic_impl
|
||||
#else
|
||||
|
||||
//
|
||||
// This version seems to work pretty well for a wide spectrum of compilers,
|
||||
// This version seems to work pretty well for a wide spectrum of compilers,
|
||||
// however it does rely on undefined behaviour by passing UDT's through (...).
|
||||
//
|
||||
template <typename From, typename To>
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// as to its suitability for any purpose.
|
||||
//
|
||||
// See http://www.boost.org for most recent version including documentation.
|
||||
@ -46,7 +46,7 @@ struct empty_helper_t1 : public T
|
||||
|
||||
struct empty_helper_t2 { int i[256]; };
|
||||
|
||||
#ifndef __BORLANDC__
|
||||
#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
||||
|
||||
template <typename T, bool is_a_class = false>
|
||||
struct empty_helper
|
||||
@ -154,9 +154,9 @@ struct empty_helper_chooser<true>
|
||||
};
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
template <typename T>
|
||||
struct is_empty_impl
|
||||
{
|
||||
{
|
||||
typedef ::boost::detail::empty_helper_chooser<
|
||||
::boost::type_traits::ice_and<
|
||||
::boost::type_traits::ice_not< ::boost::is_reference<T>::value >::value,
|
||||
@ -174,7 +174,7 @@ struct is_empty_impl
|
||||
typedef typename result::type eh_type;
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, value =
|
||||
(::boost::type_traits::ice_or<eh_type::value, BOOST_IS_EMPTY(T)>::value));
|
||||
(::boost::type_traits::ice_or<eh_type::value, BOOST_IS_EMPTY(T)>::value));
|
||||
};
|
||||
|
||||
#else
|
||||
|
@ -32,11 +32,11 @@ namespace detail {
|
||||
template <typename T>
|
||||
struct is_class_or_union
|
||||
{
|
||||
# if BOOST_WORKAROUND(BOOST_MSVC, == 1200) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570))// we simply can't detect it this way.
|
||||
# if BOOST_WORKAROUND(BOOST_MSVC, == 1200) || BOOST_WORKAROUND(__BORLANDC__, <= 0x570)// we simply can't detect it this way.
|
||||
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||
# else
|
||||
template <class U> static ::boost::type_traits::yes_type is_class_or_union_tester(void(U::*)(void));
|
||||
|
||||
|
||||
# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) \
|
||||
|| BOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE
|
||||
static ::boost::type_traits::no_type is_class_or_union_tester(...);
|
||||
@ -47,8 +47,8 @@ struct is_class_or_union
|
||||
static ::boost::type_traits::no_type is_class_or_union_tester(...);
|
||||
BOOST_STATIC_CONSTANT(
|
||||
bool, value = sizeof(is_class_or_union_tester<T>(0)) == sizeof(::boost::type_traits::yes_type));
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
};
|
||||
|
||||
struct int_convertible
|
||||
@ -80,8 +80,8 @@ template <typename T> struct is_enum_impl
|
||||
{
|
||||
typedef ::boost::add_reference<T> ar_t;
|
||||
typedef typename ar_t::type r_type;
|
||||
|
||||
#if defined __GNUC__
|
||||
|
||||
#if defined __GNUC__
|
||||
BOOST_STATIC_CONSTANT(bool, selector =
|
||||
(::boost::type_traits::ice_or<
|
||||
::boost::is_arithmetic<T>::value
|
||||
@ -99,7 +99,7 @@ template <typename T> struct is_enum_impl
|
||||
>::value));
|
||||
#endif
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
||||
typedef ::boost::detail::is_enum_helper<
|
||||
::boost::detail::is_enum_impl<T>::selector
|
||||
> se_t;
|
||||
@ -125,7 +125,7 @@ BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,::boost::detail::is_enum_impl<T>::value)
|
||||
|
||||
#else // __BORLANDC__
|
||||
//
|
||||
// buggy is_convertible prevents working
|
||||
// buggy is_convertible prevents working
|
||||
// implementation of is_enum:
|
||||
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,false)
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// as to its suitability for any purpose.
|
||||
//
|
||||
// See http://www.boost.org for most recent version including documentation.
|
||||
@ -39,13 +39,19 @@ BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char,true)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
|
||||
#endif
|
||||
|
||||
#if (defined(BOOST_MSVC) && (BOOST_MSVC == 1200)) || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600))
|
||||
#if (defined(BOOST_MSVC) && (BOOST_MSVC == 1200)) \
|
||||
|| (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
|
||||
|| (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER == 1200))
|
||||
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int8,true)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int8,true)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int16,true)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int16,true)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int32,true)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int32,true)
|
||||
#ifdef __BORLANDC__
|
||||
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
# if defined(BOOST_HAS_LONG_LONG)
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include "boost/type_traits/config.hpp"
|
||||
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__BORLANDC__)
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
||||
# include "boost/type_traits/detail/is_mem_fun_pointer_impl.hpp"
|
||||
#else
|
||||
# include "boost/type_traits/is_reference.hpp"
|
||||
@ -29,7 +29,7 @@
|
||||
|
||||
namespace boost {
|
||||
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__BORLANDC__)
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
||||
|
||||
BOOST_TT_AUX_BOOL_TRAIT_DEF1(
|
||||
is_member_function_pointer
|
||||
@ -56,7 +56,7 @@ struct is_mem_fun_pointer_select<false>
|
||||
{
|
||||
static T& make_t;
|
||||
typedef result_<T> self_type;
|
||||
|
||||
|
||||
BOOST_STATIC_CONSTANT(
|
||||
bool, value = (
|
||||
1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(self_type::make_t))
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#include "boost/type_traits/config.hpp"
|
||||
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__BORLANDC__)
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
||||
# include "boost/type_traits/is_member_function_pointer.hpp"
|
||||
#else
|
||||
# include "boost/type_traits/is_reference.hpp"
|
||||
@ -29,7 +29,7 @@
|
||||
|
||||
namespace boost {
|
||||
|
||||
#if defined(__BORLANDC__)
|
||||
#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,false)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
|
||||
|
||||
@ -58,7 +58,7 @@ struct is_member_pointer_select<false>
|
||||
{
|
||||
static T& make_t();
|
||||
BOOST_STATIC_CONSTANT(
|
||||
bool, value =
|
||||
bool, value =
|
||||
(::boost::type_traits::ice_or<
|
||||
(1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(make_t()))),
|
||||
(1 == sizeof(is_member_pointer_tester(make_t())))
|
||||
|
@ -55,7 +55,7 @@ TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T* const volatile,true)
|
||||
template< typename T >
|
||||
struct is_pointer_impl
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bool, value =
|
||||
BOOST_STATIC_CONSTANT(bool, value =
|
||||
(::boost::type_traits::ice_and<
|
||||
::boost::detail::is_pointer_helper<T>::value
|
||||
, ::boost::type_traits::ice_not<
|
||||
@ -69,7 +69,7 @@ struct is_pointer_impl
|
||||
|
||||
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl<T>::value)
|
||||
|
||||
#if defined(__BORLANDC__) && !defined(__COMO__)
|
||||
#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T&,false)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const,false)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& volatile,false)
|
||||
|
@ -26,14 +26,14 @@
|
||||
// should be the last #include
|
||||
#include "boost/type_traits/detail/bool_trait_def.hpp"
|
||||
|
||||
namespace boost {
|
||||
namespace boost {
|
||||
|
||||
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
|
||||
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,false)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T&,true)
|
||||
|
||||
#if defined(__BORLANDC__) && !defined(__COMO__)
|
||||
#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600)
|
||||
// these are illegal specialisations; cv-qualifies applied to
|
||||
// references have no effect according to [8.3.2p1],
|
||||
// C++ Builder requires them though as it treats cv-qualified
|
||||
|
@ -1,9 +1,9 @@
|
||||
|
||||
// (C) Copyright Steve Cleary, Beman Dawes, Aleksey Gurtovoy,
|
||||
// (C) Copyright Steve Cleary, Beman Dawes, Aleksey Gurtovoy,
|
||||
// Howard Hinnant & John Maddock 2000.
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This
|
||||
// software is provided "as is" without express or implied warranty, and
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This
|
||||
// software is provided "as is" without express or implied warranty, and
|
||||
// with no claim as to its suitability for any purpose.
|
||||
//
|
||||
// See http://www.boost.org for most recent version including documentation.
|
||||
@ -26,7 +26,7 @@ namespace boost {
|
||||
|
||||
BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,false)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T,T,true)
|
||||
#ifdef __BORLANDC__
|
||||
#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
|
||||
// without this, Borland's compiler gives the wrong answer for
|
||||
// references to arrays:
|
||||
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T&,T&,true)
|
||||
|
@ -33,7 +33,7 @@ namespace boost {
|
||||
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::cv_traits_imp<T*>::is_volatile)
|
||||
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T&,false)
|
||||
|
||||
#if defined(__BORLANDC__)
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
|
||||
// these are illegal specialisations; cv-qualifies applied to
|
||||
// references have no effect according to [8.3.2p1],
|
||||
// C++ Builder requires them though as it treats cv-qualified
|
||||
@ -68,7 +68,7 @@ struct is_volatile_helper<false,false>
|
||||
BOOST_STATIC_CONSTANT(bool, value = (
|
||||
sizeof(detail::yes_type) == sizeof(detail::is_volatile_tester(t))
|
||||
));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
template <>
|
||||
@ -80,7 +80,7 @@ struct is_volatile_helper<false,true>
|
||||
BOOST_STATIC_CONSTANT(bool, value = (
|
||||
sizeof(detail::yes_type) == sizeof(detail::is_volatile_tester(&t))
|
||||
));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
@ -89,7 +89,7 @@ struct is_volatile_impl
|
||||
is_reference<T>::value
|
||||
, is_array<T>::value
|
||||
>::template result_<T>
|
||||
{
|
||||
{
|
||||
};
|
||||
|
||||
BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void,false)
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// Permission to copy, use, modify, sell and distribute this software is
|
||||
// granted provided this copyright notice appears in all copies. This software
|
||||
// is provided "as is" without express or implied warranty, and with no claim
|
||||
// as to its suitability for any purpose.
|
||||
//
|
||||
// See http://www.boost.org for most recent version including documentation.
|
||||
@ -23,7 +23,7 @@ namespace boost {
|
||||
BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,T)
|
||||
BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T&,T)
|
||||
|
||||
#if defined(__BORLANDC__)
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
|
||||
// these are illegal specialisations; cv-qualifies applied to
|
||||
// references have no effect according to [8.3.2p1],
|
||||
// C++ Builder requires them though as it treats cv-qualified
|
||||
|
Reference in New Issue
Block a user