diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 78ffe5ec764cd0e49ef866a8e8aef6edc3246f18..e513ac7a5d5bece4d3fb6fcf5d764ce692d0749e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -12,6 +12,13 @@ * testsuite/experimental/functional/value.cc: New. * testsuite/experimental/feat-lib-fund.cc: Add headers and reorder. + * include/experimental/any: Add feature-testing macro. + * include/experimental/optional: Likewise. + * include/experimental/string_view: Likewise. + * include/experimental/tuple: Likewise. + * include/experimental/type_traits: Likewise. + * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error. + 2014-10-25 François Dumont <fdumont@gcc.gnu.org> * doc/xml/manual/status_cxx2011.xml: Update unordered container diff --git a/libstdc++-v3/include/experimental/any b/libstdc++-v3/include/experimental/any index a4ac983d711ecb7b78ade93395d15d0629bef282..1de467c1254cf2a71f84e5cf0154a5abcf8d8fec 100644 --- a/libstdc++-v3/include/experimental/any +++ b/libstdc++-v3/include/experimental/any @@ -60,6 +60,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @{ */ +#define __cpp_lib_experimental_any 201402 + /** * @brief Exception class thrown by a failed @c any_cast * @ingroup exceptions diff --git a/libstdc++-v3/include/experimental/optional b/libstdc++-v3/include/experimental/optional index c68d7ea3808a513c1e741bb6ed3402767b05ee54..973775bd92556c16e1166ff9feb31df140ce12a3 100644 --- a/libstdc++-v3/include/experimental/optional +++ b/libstdc++-v3/include/experimental/optional @@ -67,6 +67,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @{ */ +#define __cpp_lib_experimental_optional 201406 + // All subsequent [X.Y.n] references are against n3793. // [X.Y.4] diff --git a/libstdc++-v3/include/experimental/string_view b/libstdc++-v3/include/experimental/string_view index 041f7489deb09e51c8c04476242a5c4908488625..320d72db321628c20210c33fe49afc6d5b97744a 100644 --- a/libstdc++-v3/include/experimental/string_view +++ b/libstdc++-v3/include/experimental/string_view @@ -50,6 +50,8 @@ inline namespace fundamentals_v1 { _GLIBCXX_BEGIN_NAMESPACE_VERSION +#define __cpp_lib_experimental_string_view 201402 + /** * @class basic_string_view <experimental/string_view> * @brief A non-owning reference to a string. diff --git a/libstdc++-v3/include/experimental/tuple b/libstdc++-v3/include/experimental/tuple index da756b8549836812b039ac4f8f9db6af0cdf8bd8..5cf02d38256d14b6fb0973fa1481cb12ec7afef0 100644 --- a/libstdc++-v3/include/experimental/tuple +++ b/libstdc++-v3/include/experimental/tuple @@ -44,10 +44,13 @@ namespace experimental inline namespace fundamentals_v1 { _GLIBCXX_BEGIN_NAMESPACE_VERSION + // See C++14 §20.4.2.5, tuple helper classes template <typename _Tp> constexpr size_t tuple_size_v = tuple_size<_Tp>::value; +#define __cpp_lib_experimental_tuple 201402 + template <typename _Fn, typename _Tuple, std::size_t... _Idx> constexpr decltype(auto) __apply_impl(_Fn&& f, _Tuple&& t, std::index_sequence<_Idx...>) diff --git a/libstdc++-v3/include/experimental/type_traits b/libstdc++-v3/include/experimental/type_traits index 93dd8ce394597fe2e515cecfc83b2ed9029174d9..72aadbe6a25e5d2b4dfefd2ae9609f8aeadecb25 100644 --- a/libstdc++-v3/include/experimental/type_traits +++ b/libstdc++-v3/include/experimental/type_traits @@ -50,6 +50,8 @@ inline namespace fundamentals_v1 { _GLIBCXX_BEGIN_NAMESPACE_VERSION +#define __cpp_lib_experimental_type_trait_variable_templates 201402 + // See C++14 §20.10.4.1, primary type categories template <typename _Tp> constexpr bool is_void_v = is_void<_Tp>::value; diff --git a/libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc b/libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc index 9a12ec376243d5c6499613a2ec28319935d59b63..9ef7194a1da150f4a797b70b63f494ca328cc172 100644 --- a/libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc +++ b/libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc @@ -26,5 +26,5 @@ void test01() using std::experimental::any_cast; const any y(1); - any_cast<int&>(y); // { dg-error "qualifiers" "" { target { *-*-* } } 380 } + any_cast<int&>(y); // { dg-error "qualifiers" "" { target { *-*-* } } 382 } }