aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2015-01-20 11:51:03 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2015-01-20 11:51:03 +0000
commit4159cf0d22673c76a800dc9fb0e1453f5e28db90 (patch)
treea8ce52d71f1386a98c83792899e4695dd5bafcac
parent91c78ea5b6532c06298ffb6483a25ee573a52ed0 (diff)
downloadgcc-4159cf0d22673c76a800dc9fb0e1453f5e28db90.zip
gcc-4159cf0d22673c76a800dc9fb0e1453f5e28db90.tar.gz
gcc-4159cf0d22673c76a800dc9fb0e1453f5e28db90.tar.bz2
re PR libstdc++/64650 (std::experimental::bad_optional_access is not default constructible)
PR libstdc++/64650 * include/experimental/optional (bad_optional_access): Add default constructor. * testsuite/experimental/optional/requirements.cc: Test for default constructor. From-SVN: r219889
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/include/experimental/optional4
-rw-r--r--libstdc++-v3/testsuite/experimental/optional/requirements.cc3
3 files changed, 13 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 3274825..0777516 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,13 @@
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-01-20 Jonathan Wakely <jwakely@redhat.com>
+
* include/bits/stl_map.h (map::find<>, map::count<>,
map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New
member function templates to perform heterogeneous lookup.
diff --git a/libstdc++-v3/include/experimental/optional b/libstdc++-v3/include/experimental/optional
index 206b945..811235b 100644
--- a/libstdc++-v3/include/experimental/optional
+++ b/libstdc++-v3/include/experimental/optional
@@ -110,9 +110,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;
diff --git a/libstdc++-v3/testsuite/experimental/optional/requirements.cc b/libstdc++-v3/testsuite/experimental/optional/requirements.cc
index e83975a..531b6ca 100644
--- a/libstdc++-v3/testsuite/experimental/optional/requirements.cc
+++ b/libstdc++-v3/testsuite/experimental/optional/requirements.cc
@@ -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;