From 8e761289a2446367267c6c0d9a26e734f0f78306 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 16 Dec 2020 20:29:05 +0300 Subject: Get rid of legacy build systems and rename cutl/ to libcutl/ --- cutl/details/boost/type_traits/intrinsics.hpp | 305 -------------------------- 1 file changed, 305 deletions(-) delete mode 100644 cutl/details/boost/type_traits/intrinsics.hpp (limited to 'cutl/details/boost/type_traits/intrinsics.hpp') diff --git a/cutl/details/boost/type_traits/intrinsics.hpp b/cutl/details/boost/type_traits/intrinsics.hpp deleted file mode 100644 index 7912320..0000000 --- a/cutl/details/boost/type_traits/intrinsics.hpp +++ /dev/null @@ -1,305 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Use, modification and distribution are subject to the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_INTRINSICS_HPP_INCLUDED -#define BOOST_TT_INTRINSICS_HPP_INCLUDED - -#ifndef BOOST_TT_CONFIG_HPP_INCLUDED -#include -#endif - -// -// Helper macros for builtin compiler support. -// If your compiler has builtin support for any of the following -// traits concepts, then redefine the appropriate macros to pick -// up on the compiler support: -// -// (these should largely ignore cv-qualifiers) -// BOOST_IS_UNION(T) should evaluate to true if T is a union type -// BOOST_IS_POD(T) should evaluate to true if T is a POD type -// BOOST_IS_EMPTY(T) should evaluate to true if T is an empty class type (and not a union) -// BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect -// BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy -// BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) should evaluate to true if T(cutl_details_boost::move(t)) <==> memcpy -// BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy -// BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) should evaluate to true if t = cutl_details_boost::move(u) <==> memcpy -// BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect -// BOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw -// BOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw -// BOOST_HAS_NOTHROW_ASSIGN(T) should evaluate to true if t = u can not throw -// BOOST_HAS_VIRTUAL_DESTRUCTOR(T) should evaluate to true T has a virtual destructor -// -// The following can also be defined: when detected our implementation is greatly simplified. -// -// BOOST_IS_ABSTRACT(T) true if T is an abstract type -// BOOST_IS_BASE_OF(T,U) true if T is a base class of U -// BOOST_IS_CLASS(T) true if T is a class type (and not a union) -// BOOST_IS_CONVERTIBLE(T,U) true if T is convertible to U -// BOOST_IS_ENUM(T) true is T is an enum -// BOOST_IS_POLYMORPHIC(T) true if T is a polymorphic type -// BOOST_ALIGNMENT_OF(T) should evaluate to the alignment requirements of type T. - -#ifdef BOOST_HAS_SGI_TYPE_TRAITS - // Hook into SGI's __type_traits class, this will pick up user supplied - // specializations as well as SGI - compiler supplied specializations. -# include -# ifdef __NetBSD__ - // There are two different versions of type_traits.h on NetBSD on Spark - // use an implicit include via algorithm instead, to make sure we get - // the same version as the std lib: -# include -# else -# include -# endif -# define BOOST_IS_POD(T) ::cutl_details_boost::is_same< typename ::__type_traits::is_POD_type, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ::cutl_details_boost::is_same< typename ::__type_traits::has_trivial_default_constructor, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_COPY(T) ::cutl_details_boost::is_same< typename ::__type_traits::has_trivial_copy_constructor, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_ASSIGN(T) ::cutl_details_boost::is_same< typename ::__type_traits::has_trivial_assignment_operator, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) ::cutl_details_boost::is_same< typename ::__type_traits::has_trivial_destructor, ::__true_type>::value - -# ifdef __sgi -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -# endif -#endif - -#if defined(__MSL_CPP__) && (__MSL_CPP__ >= 0x8000) - // Metrowerks compiler is acquiring intrinsic type traits support - // post version 8. We hook into the published interface to pick up - // user defined specializations as well as compiler intrinsics as - // and when they become available: -# include -# define BOOST_IS_UNION(T) BOOST_STD_EXTENSION_NAMESPACE::is_union::value -# define BOOST_IS_POD(T) BOOST_STD_EXTENSION_NAMESPACE::is_POD::value -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_default_ctor::value -# define BOOST_HAS_TRIVIAL_COPY(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_copy_ctor::value -# define BOOST_HAS_TRIVIAL_ASSIGN(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_assignment::value -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_dtor::value -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#if (defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215))\ - || (defined(BOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1500)) -# include -# include - -# define BOOST_IS_UNION(T) __is_union(T) -# define BOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T)) -# define BOOST_IS_EMPTY(T) __is_empty(T) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) -# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T)|| ( ::cutl_details_boost::is_pod::value && !::cutl_details_boost::is_volatile::value)) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) || ( ::cutl_details_boost::is_pod::value && ! ::cutl_details_boost::is_const::value && !::cutl_details_boost::is_volatile::value)) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) || ::cutl_details_boost::is_pod::value) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) || ::cutl_details_boost::has_trivial_constructor::value) -# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) || ::cutl_details_boost::has_trivial_copy::value) -# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) || ::cutl_details_boost::has_trivial_assign::value) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) - -# define BOOST_IS_ABSTRACT(T) __is_abstract(T) -# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) -# define BOOST_IS_CLASS(T) __is_class(T) -# define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || (is_same::value && !is_function::value)) && !__is_abstract(U)) -# define BOOST_IS_ENUM(T) __is_enum(T) -// This one doesn't quite always do the right thing: -// # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -// This one fails if the default alignment has been changed with /Zp: -// # define BOOST_ALIGNMENT_OF(T) __alignof(T) - -# if defined(_MSC_VER) && (_MSC_VER >= 1700) -# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) ((__has_trivial_move_constructor(T) || ::cutl_details_boost::is_pod::value) && !::cutl_details_boost::is_volatile::value) -# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) ((__has_trivial_move_assign(T) || ::cutl_details_boost::is_pod::value) && ! ::cutl_details_boost::is_const::value && !::cutl_details_boost::is_volatile::value) -# endif - -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#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 - -#if defined(BOOST_CLANG) && defined(__has_feature) -# include -# include -# include -# include - -# if __has_feature(is_union) -# define BOOST_IS_UNION(T) __is_union(T) -# endif -# if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_pod) -# define BOOST_IS_POD(T) __is_pod(T) -# endif -# if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_empty) -# define BOOST_IS_EMPTY(T) __is_empty(T) -# endif -# if __has_feature(has_trivial_constructor) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) -# endif -# if __has_feature(has_trivial_copy) -# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference::value && !is_volatile::value) -# endif -# if __has_feature(has_trivial_assign) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile::value) -# endif -# if __has_feature(has_trivial_destructor) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) -# endif -# if __has_feature(has_nothrow_constructor) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T) -# endif -# if __has_feature(has_nothrow_copy) -# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile::value && !is_reference::value) -# endif -# if __has_feature(has_nothrow_assign) -# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile::value) -# endif -# if __has_feature(has_virtual_destructor) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) -# endif -# if __has_feature(is_abstract) -# define BOOST_IS_ABSTRACT(T) __is_abstract(T) -# endif -# if __has_feature(is_base_of) -# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) -# endif -# if __has_feature(is_class) -# define BOOST_IS_CLASS(T) __is_class(T) -# endif -# if __has_feature(is_convertible_to) -# include -# define BOOST_IS_CONVERTIBLE(T,U) (__is_convertible_to(T,U) && !::cutl_details_boost::is_abstract::value) -# endif -# if __has_feature(is_enum) -# define BOOST_IS_ENUM(T) __is_enum(T) -# endif -# if __has_feature(is_polymorphic) -# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# endif -# if __has_feature(has_trivial_move_constructor) -# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) __has_trivial_move_constructor(T) -# endif -# if __has_feature(has_trivial_move_assign) -# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) __has_trivial_move_assign(T) -# endif -# define BOOST_ALIGNMENT_OF(T) __alignof(T) - -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) && !defined(BOOST_CLANG) -# include -# include -# include - -#ifdef BOOST_INTEL -# define BOOST_INTEL_TT_OPTS || is_pod::value -#else -# define BOOST_INTEL_TT_OPTS -#endif - -# define BOOST_IS_UNION(T) __is_union(T) -# define BOOST_IS_POD(T) __is_pod(T) -# define BOOST_IS_EMPTY(T) __is_empty(T) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ((__has_trivial_constructor(T) BOOST_INTEL_TT_OPTS) && ! ::cutl_details_boost::is_volatile::value) -# define BOOST_HAS_TRIVIAL_COPY(T) ((__has_trivial_copy(T) BOOST_INTEL_TT_OPTS) && !is_reference::value && ! ::cutl_details_boost::is_volatile::value) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) ((__has_trivial_assign(T) BOOST_INTEL_TT_OPTS) && ! ::cutl_details_boost::is_volatile::value && ! ::cutl_details_boost::is_const::value) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) BOOST_INTEL_TT_OPTS) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) BOOST_INTEL_TT_OPTS) -# define BOOST_HAS_NOTHROW_COPY(T) ((__has_nothrow_copy(T) BOOST_INTEL_TT_OPTS) && !is_volatile::value && !is_reference::value) -# define BOOST_HAS_NOTHROW_ASSIGN(T) ((__has_nothrow_assign(T) BOOST_INTEL_TT_OPTS) && !is_volatile::value && !is_const::value) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) - -# define BOOST_IS_ABSTRACT(T) __is_abstract(T) -# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) -# define BOOST_IS_CLASS(T) __is_class(T) -# define BOOST_IS_ENUM(T) __is_enum(T) -# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# if (!defined(unix) && !defined(__unix__)) || defined(__LP64__) - // GCC sometimes lies about alignment requirements - // of type double on 32-bit unix platforms, use the - // old implementation instead in that case: -# define BOOST_ALIGNMENT_OF(T) __alignof__(T) -# endif - -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#if defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600) -# include -# include -# include - -# define BOOST_IS_UNION(T) __is_union(T) -# define BOOST_IS_POD(T) __is_pod(T) -# define BOOST_IS_EMPTY(T) __is_empty(T) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) -# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference::value && !is_volatile::value) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile::value) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T) -# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile::value && !is_reference::value) -# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile::value) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) - -# define BOOST_IS_ABSTRACT(T) __is_abstract(T) -# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) -# define BOOST_IS_CLASS(T) __is_class(T) -# define BOOST_IS_ENUM(T) __is_enum(T) -# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# define BOOST_ALIGNMENT_OF(T) __alignof__(T) - -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -# if defined(__CODEGEARC__) -# include -# include -# include -# include - -# define BOOST_IS_UNION(T) __is_union(T) -# define BOOST_IS_POD(T) __is_pod(T) -# define BOOST_IS_EMPTY(T) __is_empty(T) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__has_trivial_default_constructor(T)) -# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy_constructor(T) && !is_volatile::value && !is_reference::value) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile::value) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T)) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_default_constructor(T)) -# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy_constructor(T) && !is_volatile::value && !is_reference::value) -# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile::value) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) - -# define BOOST_IS_ABSTRACT(T) __is_abstract(T) -# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_void::value && !is_void::value) -# define BOOST_IS_CLASS(T) __is_class(T) -# define BOOST_IS_CONVERTIBLE(T,U) (__is_convertible(T,U) || is_void::value) -# define BOOST_IS_ENUM(T) __is_enum(T) -# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# define BOOST_ALIGNMENT_OF(T) alignof(T) - -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#endif // BOOST_TT_INTRINSICS_HPP_INCLUDED - - - - - - - -- cgit v1.1