aboutsummaryrefslogtreecommitdiff
path: root/cutl/details/boost/type_traits/msvc
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-12-16 20:29:05 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2021-02-24 16:40:04 +0300
commit8e761289a2446367267c6c0d9a26e734f0f78306 (patch)
treefb495d8c18801f271d124ee48731f10df396ca89 /cutl/details/boost/type_traits/msvc
parent4c8104756b92b9fa16b3a725e8a6aa620dfd606e (diff)
Get rid of legacy build systems and rename cutl/ to libcutl/
Diffstat (limited to 'cutl/details/boost/type_traits/msvc')
-rw-r--r--cutl/details/boost/type_traits/msvc/remove_bounds.hpp43
-rw-r--r--cutl/details/boost/type_traits/msvc/remove_const.hpp143
-rw-r--r--cutl/details/boost/type_traits/msvc/remove_cv.hpp190
-rw-r--r--cutl/details/boost/type_traits/msvc/remove_pointer.hpp42
-rw-r--r--cutl/details/boost/type_traits/msvc/remove_reference.hpp42
-rw-r--r--cutl/details/boost/type_traits/msvc/typeof.hpp50
6 files changed, 0 insertions, 510 deletions
diff --git a/cutl/details/boost/type_traits/msvc/remove_bounds.hpp b/cutl/details/boost/type_traits/msvc/remove_bounds.hpp
deleted file mode 100644
index 9aeb9f4..0000000
--- a/cutl/details/boost/type_traits/msvc/remove_bounds.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
-
-#include <cutl/details/boost/type_traits/msvc/typeof.hpp>
-#include <cutl/details/boost/type_traits/is_array.hpp>
-
-namespace cutl_details_boost {
- namespace detail {
- template<bool IsArray>
- struct remove_bounds_impl_typeof {
- template<typename T,typename ID>
- struct inner {
- typedef T type;
- };
- };
- template<>
- struct remove_bounds_impl_typeof<true> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(U[]);
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- };
- } //namespace detail
-
- template<typename T>
- struct remove_bounds {
- typedef typename cutl_details_boost::detail::remove_bounds_impl_typeof<
- cutl_details_boost::is_array<T>::value
- >::template inner<T,remove_bounds<T> >::type type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_bounds,T)
- };
-} //namespace cutl_details_boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
-
diff --git a/cutl/details/boost/type_traits/msvc/remove_const.hpp b/cutl/details/boost/type_traits/msvc/remove_const.hpp
deleted file mode 100644
index a9650ee..0000000
--- a/cutl/details/boost/type_traits/msvc/remove_const.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
-
-#include <cutl/details/boost/type_traits/msvc/typeof.hpp>
-#include <cutl/details/boost/type_traits/is_volatile.hpp>
-#include <cutl/details/boost/type_traits/is_const.hpp>
-#include <cutl/details/boost/type_traits/is_pointer.hpp>
-#include <cutl/details/boost/type_traits/is_array.hpp>
-
-namespace cutl_details_boost {
- namespace detail {
- template<bool IsPointer,bool IsArray,bool IsConst,bool IsVolatile>
- struct remove_const_impl_typeof {
- template<typename T,typename ID>
- struct inner {
- typedef T type;
- };
- template<typename T>
- struct transform_type {
- typedef T type;
- };
- };
- template<> //Const
- struct remove_const_impl_typeof<false,false,true,false> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(U const&(*)());
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T& type;
- };
- };
- template<> //CV
- struct remove_const_impl_typeof<false,false,true,true> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U volatile,ID> test(U const volatile&(*)());
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T& type;
- };
- };
- template<> //Const Pointer
- struct remove_const_impl_typeof<true,false,true,false> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(void(*)(U const[]));
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T type[];
- };
- };
- template<> //CV Pointer
- struct remove_const_impl_typeof<true,false,true,true> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U volatile,ID> test(void(*)(U const volatile[]));
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T type[];
- };
- };
- template<> //Const Array
- struct remove_const_impl_typeof<false,true,true,false> {
- template<typename T,typename ID>
- struct inner {
- BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
- template<typename U>
- static msvc_register_type<U[value],ID> test(void(*)(U const[]));
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T type;
- };
- };
-
- template<> //CV Array
- struct remove_const_impl_typeof<false,true,true,true> {
- template<typename T,typename ID>
- struct inner {
- BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
- template<typename U>
- static msvc_register_type<U volatile[value],ID> test(void(*)(U const volatile[]));
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T type;
- };
- };
-
- } //namespace detail
-
- template<typename T>
- struct remove_const {
- typedef cutl_details_boost::detail::remove_const_impl_typeof<
- cutl_details_boost::is_pointer<T>::value,
- cutl_details_boost::is_array<T>::value,
- cutl_details_boost::is_const<T>::value,
- cutl_details_boost::is_volatile<T>::value
- > remove_const_type;
- typedef typename
- remove_const_type::template inner<
- typename remove_const_type::template transform_type<T>::type,
- remove_const<T>
- >::type
- type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_const,T)
- };
-}//namespace cutl_details_boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
diff --git a/cutl/details/boost/type_traits/msvc/remove_cv.hpp b/cutl/details/boost/type_traits/msvc/remove_cv.hpp
deleted file mode 100644
index bb43bb7..0000000
--- a/cutl/details/boost/type_traits/msvc/remove_cv.hpp
+++ /dev/null
@@ -1,190 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
-
-#include <cutl/details/boost/type_traits/msvc/typeof.hpp>
-#include <cutl/details/boost/type_traits/is_volatile.hpp>
-#include <cutl/details/boost/type_traits/is_const.hpp>
-#include <cutl/details/boost/type_traits/is_pointer.hpp>
-#include <cutl/details/boost/type_traits/is_array.hpp>
-
-namespace cutl_details_boost {
- namespace detail {
- template<bool IsPointer,bool IsArray,bool IsConst,bool IsVolatile>
- struct remove_cv_impl_typeof {
- template<typename T,typename ID>
- struct inner {
- typedef T type;
- };
- template<typename T>
- struct transform_type {
- typedef T type;
- };
- };
- template<> //Volatile
- struct remove_cv_impl_typeof<false,false,false,true> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(U volatile&(*)());
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T& type;
- };
- };
- template<> //Const
- struct remove_cv_impl_typeof<false,false,true,false> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(U const&(*)());
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T& type;
- };
- };
- template<> //CV
- struct remove_cv_impl_typeof<false,false,true,true> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(U const volatile&(*)());
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T& type;
- };
- };
- template<> //Volatile Pointer
- struct remove_cv_impl_typeof<true,false,false,true> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(void(*)(U volatile[]));
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T type[];
- };
- };
- template<> //Const Pointer
- struct remove_cv_impl_typeof<true,false,true,false> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(void(*)(U const[]));
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T type[];
- };
- };
- template<> //CV Pointer
- struct remove_cv_impl_typeof<true,false,true,true> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(void(*)(U const volatile[]));
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T type[];
- };
- };
- template<> //Volatile Array
- struct remove_cv_impl_typeof<false,true,false,true> {
- template<typename T,typename ID>
- struct inner {
- BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
- template<typename U>
- static msvc_register_type<U[value],ID> test(void(*)(U volatile[]));
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T type;
- };
- };
- template<> //Const Array
- struct remove_cv_impl_typeof<false,true,true,false> {
- template<typename T,typename ID>
- struct inner {
- BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
- template<typename U>
- static msvc_register_type<U[value],ID> test(void(*)(U const[]));
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T type;
- };
- };
-
- template<> //CV Array
- struct remove_cv_impl_typeof<false,true,true,true> {
- template<typename T,typename ID>
- struct inner {
- BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
- template<typename U>
- static msvc_register_type<U[value],ID> test(void(*)(U const volatile[]));
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- template<typename T>
- struct transform_type {
- typedef T type;
- };
- };
-
- } //namespace detail
-
- template<typename T>
- struct remove_cv {
- typedef cutl_details_boost::detail::remove_cv_impl_typeof<
- cutl_details_boost::is_pointer<T>::value,
- cutl_details_boost::is_array<T>::value,
- cutl_details_boost::is_const<T>::value,
- cutl_details_boost::is_volatile<T>::value
- > remove_cv_type;
- typedef typename
- remove_cv_type::template inner<
- typename remove_cv_type::template transform_type<T>::type,
- remove_cv<T>
- >::type
- type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_cv,T)
- };
-}//namespace cutl_details_boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
diff --git a/cutl/details/boost/type_traits/msvc/remove_pointer.hpp b/cutl/details/boost/type_traits/msvc/remove_pointer.hpp
deleted file mode 100644
index 3e557b5..0000000
--- a/cutl/details/boost/type_traits/msvc/remove_pointer.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_POINTER_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_POINTER_HOLT_2004_0827
-
-#include <cutl/details/boost/type_traits/msvc/typeof.hpp>
-#include <cutl/details/boost/type_traits/is_pointer.hpp>
-
-namespace cutl_details_boost {
- namespace detail {
- template<int IsPointer>
- struct remove_pointer_impl_typeof {
- template<typename T,typename ID>
- struct inner {
- typedef T type;
- };
- };
- template<>
- struct remove_pointer_impl_typeof<true> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(U*);
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- };
- } //namespace detail
-
- template<typename T>
- struct remove_pointer {
- typedef typename cutl_details_boost::detail::remove_pointer_impl_typeof<
- cutl_details_boost::is_pointer<T>::value
- >::template inner<T,remove_pointer<T> >::type type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_pointer,T)
- };
-} //namespace cutl_details_boost
-
-#endif //BOOST_TYPE_TRAITS_REMOVE_POINTER_HOLT_2004_0827
diff --git a/cutl/details/boost/type_traits/msvc/remove_reference.hpp b/cutl/details/boost/type_traits/msvc/remove_reference.hpp
deleted file mode 100644
index ffd42ef..0000000
--- a/cutl/details/boost/type_traits/msvc/remove_reference.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
-
-#include <cutl/details/boost/type_traits/msvc/typeof.hpp>
-#include <cutl/details/boost/type_traits/is_reference.hpp>
-
-namespace cutl_details_boost {
- namespace detail {
- template<bool IsReference>
- struct remove_reference_impl_typeof {
- template<typename T,typename ID>
- struct inner {
- typedef T type;
- };
- };
- template<>
- struct remove_reference_impl_typeof<true> {
- template<typename T,typename ID>
- struct inner {
- template<typename U>
- static msvc_register_type<U,ID> test(U&(*)());
- static msvc_register_type<T,ID> test(...);
- BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
- typedef typename msvc_extract_type<ID>::id2type::type type;
- };
- };
- } //namespace detail
-
- template<typename T>
- struct remove_reference {
- typedef typename cutl_details_boost::detail::remove_reference_impl_typeof<
- cutl_details_boost::is_reference<T>::value
- >::template inner<T,remove_reference<T> >::type type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_reference,T)
- };
-} //namespace cutl_details_boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
diff --git a/cutl/details/boost/type_traits/msvc/typeof.hpp b/cutl/details/boost/type_traits/msvc/typeof.hpp
deleted file mode 100644
index 942166c..0000000
--- a/cutl/details/boost/type_traits/msvc/typeof.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPETRAITS_MSVC_TYPEOF_HPP
-#define BOOST_TYPETRAITS_MSVC_TYPEOF_HPP
-
-#include <cutl/details/boost/config.hpp>
-#include <cutl/details/boost/detail/workaround.hpp>
-
-namespace cutl_details_boost { namespace detail {
-# if BOOST_WORKAROUND(BOOST_MSVC,==1300)
- template<typename ID>
- struct msvc_extract_type
- {
- template<bool>
- struct id2type_impl;
-
- typedef id2type_impl<true> id2type;
- };
-
- template<typename T, typename ID>
- struct msvc_register_type : public msvc_extract_type<ID>
- {
- template<>
- struct id2type_impl<true> //VC7.0 specific bugfeature
- {
- typedef T type;
- };
- };
-# else
- template<typename ID>
- struct msvc_extract_type
- {
- struct id2type;
- };
-
- template<typename T, typename ID>
- struct msvc_register_type : public msvc_extract_type<ID>
- {
- typedef msvc_extract_type<ID> base_type;
- struct base_type::id2type // This uses nice VC6.5 and VC7.1 bugfeature
- {
- typedef T type;
- };
- };
-# endif
-}}
-
-#endif //BOOST_TYPETRAITS_MSVC_TYPEOF_IMPL_HPP