From b578294eb880bb26ad187bc5a3c13e1d0fd3bb0a Mon Sep 17 00:00:00 2001 From: bolero-MURAKAMI Date: Sun, 5 Apr 2015 01:32:49 +0900 Subject: [PATCH] arranged type_traits headers --- sprout/adl/not_found.hpp | 2 +- sprout/algorithm/cxx14/sort.hpp | 3 +- sprout/bit/popcount.hpp | 3 +- sprout/cstdlib/abs.hpp | 3 +- sprout/cstdlib/ascii_to_int.hpp | 3 +- sprout/cstdlib/str_to_int.hpp | 3 +- sprout/functional/hash/hash_value_traits.hpp | 4 +- sprout/functional/ref.hpp | 3 +- sprout/integer/integer_digits.hpp | 3 +- sprout/iterator/transform_iterator.hpp | 2 +- .../type_traits/is_iterator_category_of.hpp | 2 +- sprout/math/greater.hpp | 3 +- sprout/math/greater_equal.hpp | 3 +- sprout/math/less.hpp | 3 +- sprout/math/less_equal.hpp | 3 +- sprout/optional/optional.hpp | 2 +- sprout/string/int_to_string.hpp | 4 +- sprout/type_traits.hpp | 31 +---- sprout/type_traits/array_modification.hpp | 16 +++ sprout/type_traits/category.hpp | 28 +++++ sprout/type_traits/composite_category.hpp | 21 ++++ sprout/type_traits/composite_modification.hpp | 20 ++++ sprout/type_traits/cv_modification.hpp | 20 ++++ sprout/type_traits/introspection.hpp | 15 +++ sprout/type_traits/is_nullptr_cast.hpp | 6 +- sprout/type_traits/is_sint.hpp | 3 +- .../is_trivially_copy_assignable.hpp | 1 + .../is_trivially_copy_constructible.hpp | 1 + .../is_trivially_default_constructible.hpp | 1 + .../is_trivially_move_assignable.hpp | 1 + .../is_trivially_move_constructible.hpp | 1 + sprout/type_traits/is_uint.hpp | 3 +- sprout/type_traits/is_upcast.hpp | 10 +- sprout/type_traits/pointer_modification.hpp | 16 +++ sprout/type_traits/property.hpp | 62 ++++++++++ sprout/type_traits/property_query.hpp | 17 +++ sprout/type_traits/ref_modification.hpp | 17 +++ sprout/type_traits/relationship.hpp | 21 ++++ sprout/type_traits/remove_shallow_cvref.hpp | 3 +- sprout/type_traits/sign_modification.hpp | 16 +++ sprout/type_traits/std.hpp | 1 - sprout/type_traits/std_type_traits.hpp | 111 ++---------------- sprout/type_traits/transformation.hpp | 30 +++++ sprout/utility/reinter_cast.hpp | 12 +- sprout/utility/value_holder/value_holder.hpp | 2 +- sprout/weed/attr_cnv/results/mem_ptr.hpp | 2 +- 46 files changed, 372 insertions(+), 165 deletions(-) create mode 100644 sprout/type_traits/array_modification.hpp create mode 100644 sprout/type_traits/category.hpp create mode 100644 sprout/type_traits/composite_category.hpp create mode 100644 sprout/type_traits/composite_modification.hpp create mode 100644 sprout/type_traits/cv_modification.hpp create mode 100644 sprout/type_traits/introspection.hpp create mode 100644 sprout/type_traits/pointer_modification.hpp create mode 100644 sprout/type_traits/property.hpp create mode 100644 sprout/type_traits/property_query.hpp create mode 100644 sprout/type_traits/ref_modification.hpp create mode 100644 sprout/type_traits/relationship.hpp create mode 100644 sprout/type_traits/sign_modification.hpp create mode 100644 sprout/type_traits/transformation.hpp diff --git a/sprout/adl/not_found.hpp b/sprout/adl/not_found.hpp index 98fdeec7..2b412691 100644 --- a/sprout/adl/not_found.hpp +++ b/sprout/adl/not_found.hpp @@ -10,7 +10,7 @@ #include #include -#include +#include namespace sprout { // diff --git a/sprout/algorithm/cxx14/sort.hpp b/sprout/algorithm/cxx14/sort.hpp index fe94af26..241d989b 100644 --- a/sprout/algorithm/cxx14/sort.hpp +++ b/sprout/algorithm/cxx14/sort.hpp @@ -12,7 +12,8 @@ #include #include #include -#include +#include +#include #include #include HDR_FUNCTIONAL_SSCRISK_CEL_OR_SPROUT diff --git a/sprout/bit/popcount.hpp b/sprout/bit/popcount.hpp index cc6df992..bacb3384 100644 --- a/sprout/bit/popcount.hpp +++ b/sprout/bit/popcount.hpp @@ -10,7 +10,8 @@ #include #include -#include +#include +#include namespace sprout { namespace detail { diff --git a/sprout/cstdlib/abs.hpp b/sprout/cstdlib/abs.hpp index fdd2fab6..f33c2179 100644 --- a/sprout/cstdlib/abs.hpp +++ b/sprout/cstdlib/abs.hpp @@ -13,7 +13,8 @@ #include #include -#include +#include +#include namespace sprout { diff --git a/sprout/cstdlib/ascii_to_int.hpp b/sprout/cstdlib/ascii_to_int.hpp index bbbdd2e7..9bb764c6 100644 --- a/sprout/cstdlib/ascii_to_int.hpp +++ b/sprout/cstdlib/ascii_to_int.hpp @@ -12,7 +12,8 @@ #include #include #include -#include +#include +#include #include #include #include diff --git a/sprout/cstdlib/str_to_int.hpp b/sprout/cstdlib/str_to_int.hpp index e7a27dc3..ceb75f20 100644 --- a/sprout/cstdlib/str_to_int.hpp +++ b/sprout/cstdlib/str_to_int.hpp @@ -13,7 +13,8 @@ #include #include #include -#include +#include +#include #include #include #include diff --git a/sprout/functional/hash/hash_value_traits.hpp b/sprout/functional/hash/hash_value_traits.hpp index 4d0c81ef..bd2ab2a5 100644 --- a/sprout/functional/hash/hash_value_traits.hpp +++ b/sprout/functional/hash/hash_value_traits.hpp @@ -15,7 +15,9 @@ #include #include #include -#include +#include +#include +#include namespace sprout { namespace hash_detail { diff --git a/sprout/functional/ref.hpp b/sprout/functional/ref.hpp index f667d430..5b9e4d06 100644 --- a/sprout/functional/ref.hpp +++ b/sprout/functional/ref.hpp @@ -12,7 +12,8 @@ #include #include #include -#include +#include +#include #include #include #include diff --git a/sprout/integer/integer_digits.hpp b/sprout/integer/integer_digits.hpp index b3328277..abb81b0b 100644 --- a/sprout/integer/integer_digits.hpp +++ b/sprout/integer/integer_digits.hpp @@ -12,7 +12,8 @@ #include #include #include -#include +#include +#include namespace sprout { namespace detail { diff --git a/sprout/iterator/transform_iterator.hpp b/sprout/iterator/transform_iterator.hpp index 35527e19..01b57e38 100644 --- a/sprout/iterator/transform_iterator.hpp +++ b/sprout/iterator/transform_iterator.hpp @@ -17,7 +17,7 @@ #include #include #include -#include +#include namespace sprout { // diff --git a/sprout/iterator/type_traits/is_iterator_category_of.hpp b/sprout/iterator/type_traits/is_iterator_category_of.hpp index e6dbf7e7..953ca1c0 100644 --- a/sprout/iterator/type_traits/is_iterator_category_of.hpp +++ b/sprout/iterator/type_traits/is_iterator_category_of.hpp @@ -10,7 +10,7 @@ #include #include -#include +#include namespace sprout { // diff --git a/sprout/math/greater.hpp b/sprout/math/greater.hpp index 34a5d7a3..68fcddd9 100644 --- a/sprout/math/greater.hpp +++ b/sprout/math/greater.hpp @@ -13,7 +13,8 @@ #include #include #include -#include +#include +#include namespace sprout { namespace math { diff --git a/sprout/math/greater_equal.hpp b/sprout/math/greater_equal.hpp index da111273..4cf6877e 100644 --- a/sprout/math/greater_equal.hpp +++ b/sprout/math/greater_equal.hpp @@ -13,7 +13,8 @@ #include #include #include -#include +#include +#include namespace sprout { namespace math { diff --git a/sprout/math/less.hpp b/sprout/math/less.hpp index 77265337..5f51988d 100644 --- a/sprout/math/less.hpp +++ b/sprout/math/less.hpp @@ -13,7 +13,8 @@ #include #include #include -#include +#include +#include namespace sprout { namespace math { diff --git a/sprout/math/less_equal.hpp b/sprout/math/less_equal.hpp index a9cf765f..e0cd90c5 100644 --- a/sprout/math/less_equal.hpp +++ b/sprout/math/less_equal.hpp @@ -13,7 +13,8 @@ #include #include #include -#include +#include +#include namespace sprout { namespace math { diff --git a/sprout/optional/optional.hpp b/sprout/optional/optional.hpp index 79065e7d..8ce98a38 100644 --- a/sprout/optional/optional.hpp +++ b/sprout/optional/optional.hpp @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/sprout/string/int_to_string.hpp b/sprout/string/int_to_string.hpp index f115e8ad..b8d5dc38 100644 --- a/sprout/string/int_to_string.hpp +++ b/sprout/string/int_to_string.hpp @@ -15,7 +15,9 @@ #include #include #include -#include +#include +#include +#include #include #include #include diff --git a/sprout/type_traits.hpp b/sprout/type_traits.hpp index d7bcb0a6..9527aefd 100644 --- a/sprout/type_traits.hpp +++ b/sprout/type_traits.hpp @@ -10,34 +10,7 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include #endif // #ifndef SPROUT_TYPE_TRAITS_HPP diff --git a/sprout/type_traits/array_modification.hpp b/sprout/type_traits/array_modification.hpp new file mode 100644 index 00000000..91a18df4 --- /dev/null +++ b/sprout/type_traits/array_modification.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_ARRAY_MODIFICATION_HPP +#define SPROUT_TYPE_TRAITS_ARRAY_MODIFICATION_HPP + +#include +// 20.10.7.4 Array modifications +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_ARRAY_MODIFICATION_HPP diff --git a/sprout/type_traits/category.hpp b/sprout/type_traits/category.hpp new file mode 100644 index 00000000..058b00c6 --- /dev/null +++ b/sprout/type_traits/category.hpp @@ -0,0 +1,28 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_CATEGORY_HPP +#define SPROUT_TYPE_TRAITS_CATEGORY_HPP + +#include +// 20.10.4.1, primary type categories +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_CATEGORY_HPP diff --git a/sprout/type_traits/composite_category.hpp b/sprout/type_traits/composite_category.hpp new file mode 100644 index 00000000..5fdecec9 --- /dev/null +++ b/sprout/type_traits/composite_category.hpp @@ -0,0 +1,21 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_COMPOSITE_CATEGORY_HPP +#define SPROUT_TYPE_TRAITS_COMPOSITE_CATEGORY_HPP + +#include +// 20.10.4.2 Composite type traits +#include +#include +#include +#include +#include +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_COMPOSITE_CATEGORY_HPP diff --git a/sprout/type_traits/composite_modification.hpp b/sprout/type_traits/composite_modification.hpp new file mode 100644 index 00000000..0a3fc3e8 --- /dev/null +++ b/sprout/type_traits/composite_modification.hpp @@ -0,0 +1,20 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_COMPOSITE_MODIFICATION_HPP +#define SPROUT_TYPE_TRAITS_COMPOSITE_MODIFICATION_HPP + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_COMPOSITE_MODIFICATION_HPP diff --git a/sprout/type_traits/cv_modification.hpp b/sprout/type_traits/cv_modification.hpp new file mode 100644 index 00000000..b62d5d64 --- /dev/null +++ b/sprout/type_traits/cv_modification.hpp @@ -0,0 +1,20 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_CV_MODIFICATION_HPP +#define SPROUT_TYPE_TRAITS_CV_MODIFICATION_HPP + +#include +// 20.10.7.1 Const-volatile modifications +#include +#include +#include +#include +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_CV_MODIFICATION_HPP diff --git a/sprout/type_traits/introspection.hpp b/sprout/type_traits/introspection.hpp new file mode 100644 index 00000000..690b931d --- /dev/null +++ b/sprout/type_traits/introspection.hpp @@ -0,0 +1,15 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_INTROSPECTION_HPP +#define SPROUT_TYPE_TRAITS_INTROSPECTION_HPP + +#include +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_INTROSPECTION_HPP diff --git a/sprout/type_traits/is_nullptr_cast.hpp b/sprout/type_traits/is_nullptr_cast.hpp index 12ed3290..95a32c3a 100644 --- a/sprout/type_traits/is_nullptr_cast.hpp +++ b/sprout/type_traits/is_nullptr_cast.hpp @@ -8,10 +8,12 @@ #ifndef SPROUT_TYPE_TRAITS_IS_NULLPTR_CAST_HPP #define SPROUT_TYPE_TRAITS_IS_NULLPTR_CAST_HPP +#include #include #include #include -#include +#include +#include namespace sprout { // @@ -20,7 +22,7 @@ namespace sprout { template struct is_nullptr_cast : public sprout::bool_constant< - sprout::is_pointer::value && sprout::is_same::type, std::nullptr_t>::value + std::is_pointer::value && sprout::is_same::type, std::nullptr_t>::value > {}; } // namespace sprout diff --git a/sprout/type_traits/is_sint.hpp b/sprout/type_traits/is_sint.hpp index aacab1eb..e33ecd29 100644 --- a/sprout/type_traits/is_sint.hpp +++ b/sprout/type_traits/is_sint.hpp @@ -10,7 +10,8 @@ #include #include -#include +#include +#include namespace sprout { // diff --git a/sprout/type_traits/is_trivially_copy_assignable.hpp b/sprout/type_traits/is_trivially_copy_assignable.hpp index 18490587..5eb60f16 100644 --- a/sprout/type_traits/is_trivially_copy_assignable.hpp +++ b/sprout/type_traits/is_trivially_copy_assignable.hpp @@ -10,6 +10,7 @@ #include #include +#include #include namespace sprout { diff --git a/sprout/type_traits/is_trivially_copy_constructible.hpp b/sprout/type_traits/is_trivially_copy_constructible.hpp index 1b810ab2..524b1e69 100644 --- a/sprout/type_traits/is_trivially_copy_constructible.hpp +++ b/sprout/type_traits/is_trivially_copy_constructible.hpp @@ -10,6 +10,7 @@ #include #include +#include #include namespace sprout { diff --git a/sprout/type_traits/is_trivially_default_constructible.hpp b/sprout/type_traits/is_trivially_default_constructible.hpp index 0e519108..1355596f 100644 --- a/sprout/type_traits/is_trivially_default_constructible.hpp +++ b/sprout/type_traits/is_trivially_default_constructible.hpp @@ -10,6 +10,7 @@ #include #include +#include #include namespace sprout { diff --git a/sprout/type_traits/is_trivially_move_assignable.hpp b/sprout/type_traits/is_trivially_move_assignable.hpp index c5fcaf7f..7fca4fb7 100644 --- a/sprout/type_traits/is_trivially_move_assignable.hpp +++ b/sprout/type_traits/is_trivially_move_assignable.hpp @@ -10,6 +10,7 @@ #include #include +#include #include namespace sprout { diff --git a/sprout/type_traits/is_trivially_move_constructible.hpp b/sprout/type_traits/is_trivially_move_constructible.hpp index b1f42b48..3d99ad08 100644 --- a/sprout/type_traits/is_trivially_move_constructible.hpp +++ b/sprout/type_traits/is_trivially_move_constructible.hpp @@ -10,6 +10,7 @@ #include #include +#include #include namespace sprout { diff --git a/sprout/type_traits/is_uint.hpp b/sprout/type_traits/is_uint.hpp index e0bd73e7..440128ec 100644 --- a/sprout/type_traits/is_uint.hpp +++ b/sprout/type_traits/is_uint.hpp @@ -10,7 +10,8 @@ #include #include -#include +#include +#include namespace sprout { // diff --git a/sprout/type_traits/is_upcast.hpp b/sprout/type_traits/is_upcast.hpp index 21ec030b..e7a42f5e 100644 --- a/sprout/type_traits/is_upcast.hpp +++ b/sprout/type_traits/is_upcast.hpp @@ -8,9 +8,9 @@ #ifndef SPROUT_TYPE_TRAITS_IS_UPCAST_HPP #define SPROUT_TYPE_TRAITS_IS_UPCAST_HPP +#include #include #include -#include #include namespace sprout { @@ -21,11 +21,11 @@ namespace sprout { struct is_upcast : public sprout::bool_constant< sprout::is_nullptr_cast::value - || (sprout::is_pointer::value - && sprout::is_base_of::type, typename sprout::remove_pointer::type>::type>::value + || (std::is_pointer::value + && std::is_base_of::type, typename std::remove_pointer::type>::type>::value ) - || (sprout::is_reference::value - && sprout::is_base_of::type, typename sprout::remove_reference::type>::value + || (std::is_reference::value + && std::is_base_of::type, typename std::remove_reference::type>::value ) > {}; diff --git a/sprout/type_traits/pointer_modification.hpp b/sprout/type_traits/pointer_modification.hpp new file mode 100644 index 00000000..befa0d70 --- /dev/null +++ b/sprout/type_traits/pointer_modification.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_POINTER_MODIFICATION_HPP +#define SPROUT_TYPE_TRAITS_POINTER_MODIFICATION_HPP + +#include +// 20.10.7.5 Pointer modifications +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_POINTER_MODIFICATION_HPP diff --git a/sprout/type_traits/property.hpp b/sprout/type_traits/property.hpp new file mode 100644 index 00000000..79ed2d41 --- /dev/null +++ b/sprout/type_traits/property.hpp @@ -0,0 +1,62 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_PROPERTY_HPP +#define SPROUT_TYPE_TRAITS_PROPERTY_HPP + +#include +// 20.10.4.3 Type properties +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_PROPERTY_HPP diff --git a/sprout/type_traits/property_query.hpp b/sprout/type_traits/property_query.hpp new file mode 100644 index 00000000..b4e6beff --- /dev/null +++ b/sprout/type_traits/property_query.hpp @@ -0,0 +1,17 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_PROPERTY_QUERY_HPP +#define SPROUT_TYPE_TRAITS_PROPERTY_QUERY_HPP + +#include +// 20.10.5 Type property queries +#include +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_PROPERTY_QUERY_HPP diff --git a/sprout/type_traits/ref_modification.hpp b/sprout/type_traits/ref_modification.hpp new file mode 100644 index 00000000..ce901b1a --- /dev/null +++ b/sprout/type_traits/ref_modification.hpp @@ -0,0 +1,17 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_REF_MODIFICATION_HPP +#define SPROUT_TYPE_TRAITS_REF_MODIFICATION_HPP + +#include +// 20.10.7.2 Reference modifications +#include +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_REF_MODIFICATION_HPP diff --git a/sprout/type_traits/relationship.hpp b/sprout/type_traits/relationship.hpp new file mode 100644 index 00000000..1c37a2a5 --- /dev/null +++ b/sprout/type_traits/relationship.hpp @@ -0,0 +1,21 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_RELATIONSHIP_HPP +#define SPROUT_TYPE_TRAITS_RELATIONSHIP_HPP + +#include +// 20.10.6 Relationships between types +#include +#include +#include + +#include +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_RELATIONSHIP_HPP diff --git a/sprout/type_traits/remove_shallow_cvref.hpp b/sprout/type_traits/remove_shallow_cvref.hpp index 4ab182dd..7d9b0489 100644 --- a/sprout/type_traits/remove_shallow_cvref.hpp +++ b/sprout/type_traits/remove_shallow_cvref.hpp @@ -8,6 +8,7 @@ #ifndef SPROUT_TYPE_TRAITS_REMOVE_SHALLOW_CVREF_HPP #define SPROUT_TYPE_TRAITS_REMOVE_SHALLOW_CVREF_HPP +#include #include #include @@ -18,7 +19,7 @@ namespace sprout { template struct remove_shallow_cvref : public sprout::remove_shallow_cv< - typename sprout::remove_reference::type + typename std::remove_reference::type > {}; diff --git a/sprout/type_traits/sign_modification.hpp b/sprout/type_traits/sign_modification.hpp new file mode 100644 index 00000000..01abfacb --- /dev/null +++ b/sprout/type_traits/sign_modification.hpp @@ -0,0 +1,16 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_SIGN_MODIFICATION_HPP +#define SPROUT_TYPE_TRAITS_SIGN_MODIFICATION_HPP + +#include +// 20.10.7.3 Sign modifications +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_SIGN_MODIFICATION_HPP diff --git a/sprout/type_traits/std.hpp b/sprout/type_traits/std.hpp index dcdec3e4..fccac50f 100644 --- a/sprout/type_traits/std.hpp +++ b/sprout/type_traits/std.hpp @@ -9,7 +9,6 @@ #define SPROUT_TYPE_TRAITS_STD_HPP #include -#include #include #include #include diff --git a/sprout/type_traits/std_type_traits.hpp b/sprout/type_traits/std_type_traits.hpp index a95c1f98..b030f65e 100644 --- a/sprout/type_traits/std_type_traits.hpp +++ b/sprout/type_traits/std_type_traits.hpp @@ -9,106 +9,17 @@ #define SPROUT_TYPE_TRAITS_STD_TYPE_TRAITS_HPP #include -// 20.10.3, helper class: #include -// 20.10.4.1, primary type categories: -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -// 20.10.4.2 Composite type traits -#include -#include -#include -#include -#include -#include -#include -// 20.10.4.3 Type properties -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -// 20.10.5 Type property queries -#include -#include -#include -// 20.10.6 Relationships between types -#include -#include -#include -// 20.10.7.1 Const-volatile modifications -#include -#include -#include -#include -#include -#include -// 20.10.7.2 Reference modifications -#include -#include -#include -// 20.10.7.3 Sign modifications -#include -#include -// 20.10.7.4 Array modifications -#include -#include -// 20.10.7.5 Pointer modifications -#include -#include -// 20.10.7.6 Other transformations -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #endif // #ifndef SPROUT_TYPE_TRAITS_STD_TYPE_TRAITS_HPP diff --git a/sprout/type_traits/transformation.hpp b/sprout/type_traits/transformation.hpp new file mode 100644 index 00000000..9d7b74cd --- /dev/null +++ b/sprout/type_traits/transformation.hpp @@ -0,0 +1,30 @@ +/*============================================================================= + Copyright (c) 2011-2015 Bolero MURAKAMI + https://github.com/bolero-MURAKAMI/Sprout + + Distributed under 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) +=============================================================================*/ +#ifndef SPROUT_TYPE_TRAITS_TRANSFORMATION_HPP +#define SPROUT_TYPE_TRAITS_TRANSFORMATION_HPP + +#include +// 20.10.7.6 Other transformations +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#endif // #ifndef SPROUT_TYPE_TRAITS_TRANSFORMATION_HPP diff --git a/sprout/utility/reinter_cast.hpp b/sprout/utility/reinter_cast.hpp index c41cd468..7c847b8f 100644 --- a/sprout/utility/reinter_cast.hpp +++ b/sprout/utility/reinter_cast.hpp @@ -8,9 +8,9 @@ #ifndef SPROUT_UTILITY_REINTER_CAST_HPP #define SPROUT_UTILITY_REINTER_CAST_HPP +#include #include #include -#include #include #include @@ -19,12 +19,12 @@ namespace sprout { template struct is_same_reinterpret_cast : public sprout::bool_constant< - (sprout::is_reference::value - && sprout::is_same::type, typename sprout::decay::type>::value - && sprout::is_convertible::value + (std::is_reference::value + && std::is_same::type, typename std::decay::type>::value + && std::is_convertible::value ) - || ((sprout::is_integral::type || sprout::is_enum::type || sprout::is_pointer::type) - && sprout::is_same::type, To>::value + || ((std::is_integral::type || std::is_enum::type || std::is_pointer::type) + && std::is_same::type, To>::value ) > diff --git a/sprout/utility/value_holder/value_holder.hpp b/sprout/utility/value_holder/value_holder.hpp index 995b0271..a66e25fe 100644 --- a/sprout/utility/value_holder/value_holder.hpp +++ b/sprout/utility/value_holder/value_holder.hpp @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include namespace sprout { diff --git a/sprout/weed/attr_cnv/results/mem_ptr.hpp b/sprout/weed/attr_cnv/results/mem_ptr.hpp index 98f2a9f5..28a23e5a 100644 --- a/sprout/weed/attr_cnv/results/mem_ptr.hpp +++ b/sprout/weed/attr_cnv/results/mem_ptr.hpp @@ -9,7 +9,7 @@ #define SPROUT_WEED_ATTR_CNV_RESULTS_MEM_PTR_HPP #include -#include +#include namespace sprout { namespace weed {