diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2020-04-24 14:15:51 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2020-04-24 14:15:51 +0100 |
commit | 00082ff88cf4e25fc1041e9effd1c92fbaaa8d62 (patch) | |
tree | 9eac67365e42c14d960ab075b6a70a8507f4543d /libstdc++-v3 | |
parent | 1d072f3eeac486a7c6a2b1c093f1f3eebef59947 (diff) |
libstdc++: Make net::service_already_exists default constructible
The LWG issue I created is Tentatively Ready and proposes to declare a
public default constructor, rather than the private one I added
recently.
* include/experimental/executor (service_already_exists): Make default
constructor public (LWG 3414).
* testsuite/experimental/net/execution_context/make_service.cc: Check
the service_already_exists can be default constructed.
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/experimental/executor | 7 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc | 3 |
3 files changed, 13 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 7b92ba7eebf..b3d001c02ab 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2020-04-24 Jonathan Wakely <jwakely@redhat.com> + + * include/experimental/executor (service_already_exists): Make default + constructor public (LWG 3414). + * testsuite/experimental/net/execution_context/make_service.cc: Check + the service_already_exists can be default constructed. + 2020-04-24 Kamlesh Kumar <kamleshbhalui@gmail.com> Jonathan Wakely <jwakely@redhat.com> diff --git a/libstdc++-v3/include/experimental/executor b/libstdc++-v3/include/experimental/executor index fa39eaa0468..3560e345e8a 100644 --- a/libstdc++-v3/include/experimental/executor +++ b/libstdc++-v3/include/experimental/executor @@ -129,10 +129,9 @@ inline namespace v1 class service_already_exists : public logic_error { - template<typename _Service, typename... _Args> - friend _Service& - make_service(execution_context&, _Args&&...); - + public: + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 3414. service_already_exists has no usable constructors service_already_exists() : logic_error("service already exists") { } }; diff --git a/libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc b/libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc index f134add48b5..0898d12927a 100644 --- a/libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc +++ b/libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc @@ -34,3 +34,6 @@ void test01(net::execution_context& c) { net::make_service<S>(c); } + +static_assert(std::is_default_constructible<net::service_already_exists>(), + "LWG 3414. service_already_exists has no usable constructors"); |