* include/std/chrono (_Checked_integral_constant): Allow zero.
* testsuite/20_util/duration/literals/values.cc: Test non-positive
values and digit separators.
+ * include/experimental/any
PR libstdc++/61532
* testsuite/20_util/make_signed/requirements/typedefs-1.cc: Do not
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
Likewise.
+ * include/experimental/any (any_v1): Rename namespace to
+ fundamentals_v1. Change string returned by bad_any_cast::what().
+ * include/experimental/optional (fundamentals_v1): Add namespace.
+ * include/experimental/string_view (fundamentals_v1): Likewise.
+ * testsuite/experimental/any/typedefs.cc: New.
+ * testsuite/experimental/optional/typedefs.cc: New.
+ * testsuite/experimental/string_view/typedefs.cc: New.
+
2014-06-18 Paolo Carlini <paolo.carlini@oracle.com>
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
{
namespace experimental
{
-inline namespace any_v1
+inline namespace fundamentals_v1
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
class bad_any_cast : public bad_cast
{
public:
- virtual const char* what() const noexcept { return "bad_any_cast"; }
+ virtual const char* what() const noexcept { return "bad any_cast"; }
};
[[gnu::noreturn]] inline void __throw_bad_any_cast()
// @} group any
_GLIBCXX_END_NAMESPACE_VERSION
-} // namespace any_v1
+} // namespace fundamentals_v1
} // namespace experimental
} // namespace std
{
namespace experimental
{
+inline namespace fundamentals_v1
+{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
/**
// @} group optional
_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace fundamentals_v1
}
// [X.Y.12]
{
namespace experimental
{
+inline namespace fundamentals_v1
+{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
/**
#endif
_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace fundamentals_v1
} // namespace experimental
--- /dev/null
+// { dg-options "-std=gnu++14" }
+// { dg-do compile }
+
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a moved_to of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <experimental/any>
+#include <type_traits>
+#include <typeinfo>
+
+using check1_t = std::experimental::fundamentals_v1::any;
+using check2_t = std::experimental::fundamentals_v1::bad_any_cast;
+
+static_assert(std::is_base_of<std::bad_cast, check2_t>::value,
+ "bad_any_cast must derive from bad_cast");
+
--- /dev/null
+// { dg-options "-std=gnu++14" }
+// { dg-do compile }
+
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a moved_to of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <experimental/optional>
+#include <type_traits>
+#include <stdexcept>
+
+template<typename T>
+ using check1_t = std::experimental::fundamentals_v1::optional<T>;
+
+using check2_t = std::experimental::fundamentals_v1::in_place_t;
+using check3_t = std::experimental::fundamentals_v1::nullopt_t;
+using check4_t = std::experimental::fundamentals_v1::bad_optional_access;
+
+static_assert(std::is_base_of<std::logic_error, check4_t>::value,
+ "bad_optional_access must derive from logic_error");
--- /dev/null
+// { dg-options "-std=gnu++14" }
+// { dg-do compile }
+
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a moved_to of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <experimental/string_view>
+
+template<typename C, typename T>
+ using check1_t = std::experimental::fundamentals_v1::basic_string_view<C, T>;
+
+using check2_t = std::experimental::fundamentals_v1::string_view;
+
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
+using check3_t = std::experimental::fundamentals_v1::u16string_view;
+using check4_t = std::experimental::fundamentals_v1::u32string_view;
+#endif
+
+#ifdef _GLIBCXX_USE_WCHAR_T
+using check5_t = std::experimental::fundamentals_v1::wstring_view;
+#endif
+