diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2020-12-16 20:29:05 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2021-02-24 16:40:04 +0300 |
commit | 8e761289a2446367267c6c0d9a26e734f0f78306 (patch) | |
tree | fb495d8c18801f271d124ee48731f10df396ca89 /cutl/details/boost/type_traits/is_pod.hpp | |
parent | 4c8104756b92b9fa16b3a725e8a6aa620dfd606e (diff) |
Get rid of legacy build systems and rename cutl/ to libcutl/
Diffstat (limited to 'cutl/details/boost/type_traits/is_pod.hpp')
-rw-r--r-- | cutl/details/boost/type_traits/is_pod.hpp | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/cutl/details/boost/type_traits/is_pod.hpp b/cutl/details/boost/type_traits/is_pod.hpp deleted file mode 100644 index 6cb954e..0000000 --- a/cutl/details/boost/type_traits/is_pod.hpp +++ /dev/null @@ -1,145 +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_IS_POD_HPP_INCLUDED -#define BOOST_TT_IS_POD_HPP_INCLUDED - -#include <cutl/details/boost/type_traits/config.hpp> -#include <cutl/details/boost/type_traits/is_void.hpp> -#include <cutl/details/boost/type_traits/is_scalar.hpp> -#include <cutl/details/boost/type_traits/detail/ice_or.hpp> -#include <cutl/details/boost/type_traits/intrinsics.hpp> - -#include <cstddef> - -// should be the last #include -#include <cutl/details/boost/type_traits/detail/bool_trait_def.hpp> - -#ifndef BOOST_IS_POD -#define BOOST_INTERNAL_IS_POD(T) false -#else -#define BOOST_INTERNAL_IS_POD(T) BOOST_IS_POD(T) -#endif - -namespace cutl_details_boost { - -// forward declaration, needed by 'is_pod_array_helper' template below -template< typename T > struct is_POD; - -namespace detail { - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template <typename T> struct is_pod_impl -{ - BOOST_STATIC_CONSTANT( - bool, value = - (::cutl_details_boost::type_traits::ice_or< - ::cutl_details_boost::is_scalar<T>::value, - ::cutl_details_boost::is_void<T>::value, - BOOST_INTERNAL_IS_POD(T) - >::value)); -}; - -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -template <typename T, std::size_t sz> -struct is_pod_impl<T[sz]> - : public is_pod_impl<T> -{ -}; -#endif - -#else - -template <bool is_array = false> -struct is_pod_helper -{ - template <typename T> struct result_ - { - BOOST_STATIC_CONSTANT( - bool, value = - (::cutl_details_boost::type_traits::ice_or< - ::cutl_details_boost::is_scalar<T>::value, - ::cutl_details_boost::is_void<T>::value, - BOOST_INTERNAL_IS_POD(T) - >::value)); - }; -}; - -template <bool b> -struct bool_to_yes_no_type -{ - typedef ::cutl_details_boost::type_traits::no_type type; -}; - -template <> -struct bool_to_yes_no_type<true> -{ - typedef ::cutl_details_boost::type_traits::yes_type type; -}; - -template <typename ArrayType> -struct is_pod_array_helper -{ - enum { is_pod = ::cutl_details_boost::is_POD<ArrayType>::value }; // MSVC workaround - typedef typename bool_to_yes_no_type<is_pod>::type type; - type instance() const; -}; - -template <typename T> -is_pod_array_helper<T> is_POD_array(T*); - -template <> -struct is_pod_helper<true> -{ - template <typename T> struct result_ - { - static T& help(); - BOOST_STATIC_CONSTANT(bool, value = - sizeof(is_POD_array(help()).instance()) == sizeof(::cutl_details_boost::type_traits::yes_type) - ); - }; -}; - - -template <typename T> struct is_pod_impl -{ - BOOST_STATIC_CONSTANT( - bool, value = ( - ::cutl_details_boost::detail::is_pod_helper< - ::cutl_details_boost::is_array<T>::value - >::template result_<T>::value - ) - ); -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -// the following help compilers without partial specialization support: -BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void,true) - -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const,true) -BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void volatile,true) -BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const volatile,true) -#endif - -} // namespace detail - -BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::cutl_details_boost::detail::is_pod_impl<T>::value) -// is_POD is the old depricated name for this trait, do not use this as it may -// be removed in future without warning!! -BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::cutl_details_boost::is_pod<T>::value) - -} // namespace cutl_details_boost - -#include <cutl/details/boost/type_traits/detail/bool_trait_undef.hpp> - -#undef BOOST_INTERNAL_IS_POD - -#endif // BOOST_TT_IS_POD_HPP_INCLUDED |