Mercurial > hg > vamp-build-and-test
annotate DEPENDENCIES/generic/include/boost/align/detail/remove_traits.hpp @ 133:4acb5d8d80b6 tip
Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author | Chris Cannam |
---|---|
date | Tue, 30 Jul 2019 12:25:44 +0100 |
parents | f46d142149f5 |
children |
rev | line source |
---|---|
Chris@102 | 1 /* |
Chris@102 | 2 (c) 2014 Glen Joseph Fernandes |
Chris@102 | 3 glenjofe at gmail dot com |
Chris@102 | 4 |
Chris@102 | 5 Distributed under the Boost Software |
Chris@102 | 6 License, Version 1.0. |
Chris@102 | 7 http://boost.org/LICENSE_1_0.txt |
Chris@102 | 8 */ |
Chris@102 | 9 #ifndef BOOST_ALIGN_DETAIL_REMOVE_TRAITS_HPP |
Chris@102 | 10 #define BOOST_ALIGN_DETAIL_REMOVE_TRAITS_HPP |
Chris@102 | 11 |
Chris@102 | 12 #include <boost/config.hpp> |
Chris@102 | 13 |
Chris@102 | 14 #if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) |
Chris@102 | 15 #include <type_traits> |
Chris@102 | 16 #else |
Chris@102 | 17 #include <cstddef> |
Chris@102 | 18 #endif |
Chris@102 | 19 |
Chris@102 | 20 namespace boost { |
Chris@102 | 21 namespace alignment { |
Chris@102 | 22 namespace detail { |
Chris@102 | 23 #if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) |
Chris@102 | 24 using std::remove_reference; |
Chris@102 | 25 using std::remove_all_extents; |
Chris@102 | 26 using std::remove_cv; |
Chris@102 | 27 #else |
Chris@102 | 28 template<class T> |
Chris@102 | 29 struct remove_reference { |
Chris@102 | 30 typedef T type; |
Chris@102 | 31 }; |
Chris@102 | 32 |
Chris@102 | 33 template<class T> |
Chris@102 | 34 struct remove_reference<T&> { |
Chris@102 | 35 typedef T type; |
Chris@102 | 36 }; |
Chris@102 | 37 |
Chris@102 | 38 #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) |
Chris@102 | 39 template<class T> |
Chris@102 | 40 struct remove_reference<T&&> { |
Chris@102 | 41 typedef T type; |
Chris@102 | 42 }; |
Chris@102 | 43 #endif |
Chris@102 | 44 |
Chris@102 | 45 template<class T> |
Chris@102 | 46 struct remove_all_extents { |
Chris@102 | 47 typedef T type; |
Chris@102 | 48 }; |
Chris@102 | 49 |
Chris@102 | 50 template<class T> |
Chris@102 | 51 struct remove_all_extents<T[]> { |
Chris@102 | 52 typedef typename remove_all_extents<T>::type type; |
Chris@102 | 53 }; |
Chris@102 | 54 |
Chris@102 | 55 template<class T, std::size_t N> |
Chris@102 | 56 struct remove_all_extents<T[N]> { |
Chris@102 | 57 typedef typename remove_all_extents<T>::type type; |
Chris@102 | 58 }; |
Chris@102 | 59 |
Chris@102 | 60 template<class T> |
Chris@102 | 61 struct remove_const { |
Chris@102 | 62 typedef T type; |
Chris@102 | 63 }; |
Chris@102 | 64 |
Chris@102 | 65 template<class T> |
Chris@102 | 66 struct remove_const<const T> { |
Chris@102 | 67 typedef T type; |
Chris@102 | 68 }; |
Chris@102 | 69 |
Chris@102 | 70 template<class T> |
Chris@102 | 71 struct remove_volatile { |
Chris@102 | 72 typedef T type; |
Chris@102 | 73 }; |
Chris@102 | 74 |
Chris@102 | 75 template<class T> |
Chris@102 | 76 struct remove_volatile<volatile T> { |
Chris@102 | 77 typedef T type; |
Chris@102 | 78 }; |
Chris@102 | 79 |
Chris@102 | 80 template<class T> |
Chris@102 | 81 struct remove_cv { |
Chris@102 | 82 typedef typename remove_volatile<typename |
Chris@102 | 83 remove_const<T>::type>::type type; |
Chris@102 | 84 }; |
Chris@102 | 85 #endif |
Chris@102 | 86 } |
Chris@102 | 87 } |
Chris@102 | 88 } |
Chris@102 | 89 |
Chris@102 | 90 #endif |