]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR libstdc++/64650 (std::experimental::bad_optional_access is not defaul...
authorJonathan Wakely <jwakely@redhat.com>
Wed, 10 Jun 2015 09:42:37 +0000 (10:42 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 10 Jun 2015 09:42:37 +0000 (10:42 +0100)
Backport from mainline
2015-01-20  Jonathan Wakely  <jwakely@redhat.com>

PR libstdc++/64650
* include/experimental/optional (bad_optional_access): Add default
constructor.
* testsuite/experimental/optional/requirements.cc: Test for default
constructor.

From-SVN: r224323

libstdc++-v3/ChangeLog
libstdc++-v3/include/experimental/optional
libstdc++-v3/testsuite/experimental/optional/requirements.cc

index 29169172b57f4c9ba4b6c5955dd4be7cc068925b..7af25cbc8d481230c7c3f701007237ab52525213 100644 (file)
@@ -1,3 +1,14 @@
+2015-06-10  Jonathan Wakely  <jwakely@redhat.com>
+
+       Backport from mainline
+       2015-01-20  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/64650
+       * include/experimental/optional (bad_optional_access): Add default
+       constructor.
+       * testsuite/experimental/optional/requirements.cc: Test for default
+       constructor.
+
 2015-06-08  Jonathan Wakely  <jwakely@redhat.com>
 
        Backported from mainline
index 2a3f29dcd70f35ce570da2f31cc30a8f3ac3ac72..3e73f847d0edc04d444b54e8fa5fdd98870fcbf7 100644 (file)
@@ -106,9 +106,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   class bad_optional_access : public logic_error
   {
   public:
-    // XXX Should not be inline
-    explicit bad_optional_access(const string& __arg) : logic_error(__arg) { }
+    bad_optional_access() : logic_error("bad optional access") { }
 
+    // XXX This constructor is non-standard. Should not be inline
     explicit bad_optional_access(const char* __arg) : logic_error(__arg) { }
 
     virtual ~bad_optional_access() noexcept = default;
index 4b0535b4709390f330fe264f32b5bdc02188b358..0ba8e970099bac72e142bab7bdd515b1541519a9 100644 (file)
@@ -23,6 +23,9 @@
 
 #include <tuple>
 
+using std::experimental::bad_optional_access;
+static_assert( std::is_default_constructible<bad_optional_access>::value, "" );
+
 struct trivially_destructible
 {
   trivially_destructible() = delete;