diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2015-01-20 11:51:03 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2015-01-20 11:51:03 +0000 |
commit | 4159cf0d22673c76a800dc9fb0e1453f5e28db90 (patch) | |
tree | a8ce52d71f1386a98c83792899e4695dd5bafcac | |
parent | 91c78ea5b6532c06298ffb6483a25ee573a52ed0 (diff) | |
download | gcc-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/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/experimental/optional | 4 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/experimental/optional/requirements.cc | 3 |
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; |