diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-09-13 11:24:46 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2017-09-13 11:25:39 +0900 |
commit | 4fadd968fa12130524c8380f33fcfe25d4de79e5 (patch) | |
tree | fd26a490cd15388d42fc6652b3c5c13012e7f93e /boost/type_traits | |
parent | b5c87084afaef42b2d058f68091be31988a6a874 (diff) | |
download | boost-4fadd968fa12130524c8380f33fcfe25d4de79e5.tar.gz boost-4fadd968fa12130524c8380f33fcfe25d4de79e5.tar.bz2 boost-4fadd968fa12130524c8380f33fcfe25d4de79e5.zip |
Imported Upstream version 1.65.0upstream/1.65.0
Change-Id: Icf8400b375482cb11bcf77440a6934ba360d6ba4
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/type_traits')
25 files changed, 174 insertions, 0 deletions
diff --git a/boost/type_traits/add_const.hpp b/boost/type_traits/add_const.hpp index a9fb781c78..2d60118276 100644 --- a/boost/type_traits/add_const.hpp +++ b/boost/type_traits/add_const.hpp @@ -41,6 +41,12 @@ namespace boost { typedef T& type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using add_const_t = typename add_const<T>::type; + +#endif + } // namespace boost #endif // BOOST_TT_ADD_CONST_HPP_INCLUDED diff --git a/boost/type_traits/add_cv.hpp b/boost/type_traits/add_cv.hpp index e62ddee0c4..425d019bf6 100644 --- a/boost/type_traits/add_cv.hpp +++ b/boost/type_traits/add_cv.hpp @@ -36,6 +36,12 @@ template <class T> struct add_cv{ typedef T const volatile type; }; template <class T> struct add_cv<T&>{ typedef T& type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using add_cv_t = typename add_cv<T>::type; + +#endif + } // namespace boost #endif // BOOST_TT_ADD_CV_HPP_INCLUDED diff --git a/boost/type_traits/add_lvalue_reference.hpp b/boost/type_traits/add_lvalue_reference.hpp index 41851a1f34..26b74e67ca 100644 --- a/boost/type_traits/add_lvalue_reference.hpp +++ b/boost/type_traits/add_lvalue_reference.hpp @@ -22,6 +22,12 @@ template <class T> struct add_lvalue_reference<T&&> }; #endif +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using add_lvalue_reference_t = typename add_lvalue_reference<T>::type; + +#endif + } #endif // BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP diff --git a/boost/type_traits/add_pointer.hpp b/boost/type_traits/add_pointer.hpp index 745f63a084..85ad33a8d9 100644 --- a/boost/type_traits/add_pointer.hpp +++ b/boost/type_traits/add_pointer.hpp @@ -56,6 +56,12 @@ struct add_pointer #endif +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using add_pointer_t = typename add_pointer<T>::type; + +#endif + } // namespace boost #endif // BOOST_TT_ADD_POINTER_HPP_INCLUDED diff --git a/boost/type_traits/add_reference.hpp b/boost/type_traits/add_reference.hpp index 3c914154ee..33e9bc79be 100644 --- a/boost/type_traits/add_reference.hpp +++ b/boost/type_traits/add_reference.hpp @@ -54,6 +54,13 @@ template <> struct add_reference<const volatile void> { typedef const volatile v template <> struct add_reference<volatile void> { typedef volatile void type; }; #endif +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + +template <class T> using add_reference_t = typename add_reference<T>::type; + +#endif + + } // namespace boost #endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED diff --git a/boost/type_traits/add_rvalue_reference.hpp b/boost/type_traits/add_rvalue_reference.hpp index 44ead34803..ad64894f77 100644 --- a/boost/type_traits/add_rvalue_reference.hpp +++ b/boost/type_traits/add_rvalue_reference.hpp @@ -58,6 +58,12 @@ template <class T> struct add_rvalue_reference typedef typename boost::type_traits_detail::add_rvalue_reference_imp<T>::type type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using add_rvalue_reference_t = typename add_rvalue_reference<T>::type; + +#endif + } // namespace boost #endif // BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP diff --git a/boost/type_traits/add_volatile.hpp b/boost/type_traits/add_volatile.hpp index 24f515c802..253751a578 100644 --- a/boost/type_traits/add_volatile.hpp +++ b/boost/type_traits/add_volatile.hpp @@ -35,6 +35,12 @@ template <class T> struct add_volatile{ typedef T volatile type; }; template <class T> struct add_volatile<T&>{ typedef T& type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using add_volatile_t = typename add_volatile<T>::type; + +#endif + } // namespace boost #endif // BOOST_TT_ADD_VOLATILE_HPP_INCLUDED diff --git a/boost/type_traits/conditional.hpp b/boost/type_traits/conditional.hpp index b7e82dbe82..5890198ba2 100644 --- a/boost/type_traits/conditional.hpp +++ b/boost/type_traits/conditional.hpp @@ -14,6 +14,12 @@ namespace boost { template <bool b, class T, class U> struct conditional { typedef T type; }; template <class T, class U> struct conditional<false, T, U> { typedef U type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <bool b, class T, class U> using conditional_t = typename conditional<b, T, U>::type; + +#endif + } // namespace boost diff --git a/boost/type_traits/copy_cv.hpp b/boost/type_traits/copy_cv.hpp index 1605ca3356..2f3dc37adc 100644 --- a/boost/type_traits/copy_cv.hpp +++ b/boost/type_traits/copy_cv.hpp @@ -29,6 +29,12 @@ public: typedef typename boost::conditional<boost::is_volatile<U>::value, typename boost::add_volatile<CT>::type, CT>::type type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T, class U> using copy_cv_t = typename copy_cv<T, U>::type; + +#endif + } // namespace boost #endif // #ifndef BOOST_TYPE_TRAITS_COPY_CV_HPP_INCLUDED diff --git a/boost/type_traits/decay.hpp b/boost/type_traits/decay.hpp index 4e8118433e..5b28d052fc 100644 --- a/boost/type_traits/decay.hpp +++ b/boost/type_traits/decay.hpp @@ -37,6 +37,12 @@ namespace boost typedef typename boost::detail::decay_imp<Ty, boost::is_array<Ty>::value, boost::is_function<Ty>::value>::type type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using decay_t = typename decay<T>::type; + +#endif + } // namespace boost diff --git a/boost/type_traits/floating_point_promotion.hpp b/boost/type_traits/floating_point_promotion.hpp index 993e14ef4b..0e709b74ae 100644 --- a/boost/type_traits/floating_point_promotion.hpp +++ b/boost/type_traits/floating_point_promotion.hpp @@ -14,6 +14,12 @@ namespace boost { template<> struct floating_point_promotion<float volatile>{ typedef double volatile type; }; template<> struct floating_point_promotion<float const volatile> { typedef double const volatile type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using floating_point_promotion_t = typename floating_point_promotion<T>::type; + +#endif + } #endif // #ifndef FILE_boost_type_traits_floating_point_promotion_hpp_INCLUDED diff --git a/boost/type_traits/integral_promotion.hpp b/boost/type_traits/integral_promotion.hpp index 0478f56349..526f90ca99 100644 --- a/boost/type_traits/integral_promotion.hpp +++ b/boost/type_traits/integral_promotion.hpp @@ -175,6 +175,12 @@ public: typedef typename boost::type_traits::detail::integral_promotion<T, tag_type::value>::type type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using integral_promotion_t = typename integral_promotion<T>::type; + +#endif + } #endif // #ifndef FILE_boost_type_traits_integral_promotion_hpp_INCLUDED diff --git a/boost/type_traits/make_signed.hpp b/boost/type_traits/make_signed.hpp index 0d2d5df61a..6d8b1fb8d4 100644 --- a/boost/type_traits/make_signed.hpp +++ b/boost/type_traits/make_signed.hpp @@ -125,6 +125,12 @@ public: >::type type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using make_signed_t = typename make_signed<T>::type; + +#endif + } // namespace boost #endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED diff --git a/boost/type_traits/make_unsigned.hpp b/boost/type_traits/make_unsigned.hpp index 4b21ebaeb2..17a8a5b929 100644 --- a/boost/type_traits/make_unsigned.hpp +++ b/boost/type_traits/make_unsigned.hpp @@ -124,6 +124,12 @@ public: >::type type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using make_unsigned_t = typename make_unsigned<T>::type; + +#endif + } // namespace boost #endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED diff --git a/boost/type_traits/promote.hpp b/boost/type_traits/promote.hpp index 587617a287..1678e1ca3e 100644 --- a/boost/type_traits/promote.hpp +++ b/boost/type_traits/promote.hpp @@ -14,6 +14,12 @@ namespace boost { template<class T> struct promote : public integral_promotion<typename floating_point_promotion<T>::type>{}; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using promote_t = typename promote<T>::type; + +#endif + } #endif // #ifndef FILE_boost_type_traits_promote_hpp_INCLUDED diff --git a/boost/type_traits/remove_all_extents.hpp b/boost/type_traits/remove_all_extents.hpp index 90c90d3523..b9736db57e 100644 --- a/boost/type_traits/remove_all_extents.hpp +++ b/boost/type_traits/remove_all_extents.hpp @@ -30,6 +30,12 @@ template <class T> struct remove_all_extents<T const volatile[]> : public remove #endif #endif +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using remove_all_extents_t = typename remove_all_extents<T>::type; + +#endif + } // namespace boost #endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED diff --git a/boost/type_traits/remove_bounds.hpp b/boost/type_traits/remove_bounds.hpp index 56988d24e0..cd0565d28f 100644 --- a/boost/type_traits/remove_bounds.hpp +++ b/boost/type_traits/remove_bounds.hpp @@ -16,6 +16,13 @@ namespace boost template <class T> struct remove_bounds : public remove_extent<T> {}; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + +template <class T> using remove_bounds_t = typename remove_bounds<T>::type; + +#endif + + } // namespace boost #endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED diff --git a/boost/type_traits/remove_const.hpp b/boost/type_traits/remove_const.hpp index e238962c6d..6f1a193740 100644 --- a/boost/type_traits/remove_const.hpp +++ b/boost/type_traits/remove_const.hpp @@ -28,6 +28,12 @@ namespace boost { #endif #endif +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using remove_const_t = typename remove_const<T>::type; + +#endif + } // namespace boost #endif // BOOST_TT_REMOVE_CONST_HPP_INCLUDED diff --git a/boost/type_traits/remove_cv.hpp b/boost/type_traits/remove_cv.hpp index 08393cfb81..57a96f29d6 100644 --- a/boost/type_traits/remove_cv.hpp +++ b/boost/type_traits/remove_cv.hpp @@ -34,6 +34,11 @@ template <class T> struct remove_cv<T volatile[]>{ typedef T type[]; }; #endif #endif +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using remove_cv_t = typename remove_cv<T>::type; + +#endif } // namespace boost diff --git a/boost/type_traits/remove_cv_ref.hpp b/boost/type_traits/remove_cv_ref.hpp new file mode 100644 index 0000000000..118945a6a0 --- /dev/null +++ b/boost/type_traits/remove_cv_ref.hpp @@ -0,0 +1,30 @@ + +// (C) Copyright Peter Dimov 2017. +// 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_REMOVE_CV_REF_HPP_INCLUDED +#define BOOST_TT_REMOVE_CV_REF_HPP_INCLUDED + +#include <boost/config.hpp> +#include <boost/type_traits/remove_cv.hpp> +#include <boost/type_traits/remove_reference.hpp> + +namespace boost { + + template <class T> struct remove_cv_ref: remove_cv<typename remove_reference<T>::type> {}; + + +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using remove_cv_ref_t = typename remove_cv_ref<T>::type; + +#endif + +} // namespace boost + +#endif // BOOST_TT_REMOVE_CV_REF_HPP_INCLUDED diff --git a/boost/type_traits/remove_extent.hpp b/boost/type_traits/remove_extent.hpp index b6528e525b..55d57301b7 100644 --- a/boost/type_traits/remove_extent.hpp +++ b/boost/type_traits/remove_extent.hpp @@ -30,6 +30,12 @@ template <typename T> struct remove_extent<T const volatile[]> { typedef T const #endif #endif +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using remove_extent_t = typename remove_extent<T>::type; + +#endif + } // namespace boost #endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED diff --git a/boost/type_traits/remove_pointer.hpp b/boost/type_traits/remove_pointer.hpp index 921665266f..a7baa765f0 100644 --- a/boost/type_traits/remove_pointer.hpp +++ b/boost/type_traits/remove_pointer.hpp @@ -72,6 +72,12 @@ template <class T> struct remove_pointer<T*const volatile>{ typedef T type; }; #endif +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using remove_pointer_t = typename remove_pointer<T>::type; + +#endif + } // namespace boost #endif // BOOST_TT_REMOVE_POINTER_HPP_INCLUDED diff --git a/boost/type_traits/remove_reference.hpp b/boost/type_traits/remove_reference.hpp index f75e67783b..70949fbb2a 100644 --- a/boost/type_traits/remove_reference.hpp +++ b/boost/type_traits/remove_reference.hpp @@ -48,6 +48,11 @@ template <class T> struct remove_reference<T&volatile>{ typedef T type; }; template <class T> struct remove_reference<T&const volatile>{ typedef T type; }; #endif +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using remove_reference_t = typename remove_reference<T>::type; + +#endif } // namespace boost diff --git a/boost/type_traits/remove_volatile.hpp b/boost/type_traits/remove_volatile.hpp index f5870f317f..bf2c55796a 100644 --- a/boost/type_traits/remove_volatile.hpp +++ b/boost/type_traits/remove_volatile.hpp @@ -28,6 +28,11 @@ namespace boost { #endif #endif +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + template <class T> using remove_volatile_t = typename remove_volatile<T>::type; + +#endif } // namespace boost diff --git a/boost/type_traits/type_identity.hpp b/boost/type_traits/type_identity.hpp index 6d2dd5b4dc..73cb3f3f9e 100644 --- a/boost/type_traits/type_identity.hpp +++ b/boost/type_traits/type_identity.hpp @@ -17,6 +17,13 @@ template<class T> struct type_identity typedef T type; }; +#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + +template <class T> using type_identity_t = typename type_identity<T>::type; + +#endif + + } // namespace boost #endif // #ifndef BOOST_TYPE_TRAITS_TYPE_IDENTITY_HPP_INCLUDED |