[Bug libstdc++/69301] New: std::atomic<T>::load() won't compile if T doesn't have a default constructor
anthony.ajw at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Jan 15 18:15:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69301
Bug ID: 69301
Summary: std::atomic<T>::load() won't compile if T doesn't have
a default constructor
Product: gcc
Version: 5.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: anthony.ajw at gmail dot com
Target Milestone: ---
Created attachment 37360
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37360&action=edit
atomic_no_default_constructor.cpp
The attached simple code fails to compile with g++ 5.3 in C++1y mode because
NoDefaultConstructor doesn't have a default constructor. The error message is
quoted below.
g++-5 -std=c++1y atomic_no_default_constructor.cpp
In file included from atomic_no_default_constructor.cpp:1:0:
/usr/include/c++/5/atomic: In instantiation of ‘_Tp
std::atomic<_Tp>::load(std::memory_order) const [with _Tp =
NoDefaultConstructor; std::memory_order = std::memory_order]’:
atomic_no_default_constructor.cpp:11:12: required from here
/usr/include/c++/5/atomic:234:13: error: no matching function for call to
‘NoDefaultConstructor::NoDefaultConstructor()’
_Tp tmp;
^
atomic_no_default_constructor.cpp:5:15: note: candidate: constexpr
NoDefaultConstructor::NoDefaultConstructor(int)
constexpr NoDefaultConstructor(int i_) noexcept : i(i_) {}
^
atomic_no_default_constructor.cpp:5:15: note: candidate expects 1 argument, 0
provided
atomic_no_default_constructor.cpp:3:8: note: candidate: constexpr
NoDefaultConstructor::NoDefaultConstructor(const NoDefaultConstructor&)
struct NoDefaultConstructor{
^
atomic_no_default_constructor.cpp:3:8: note: candidate expects 1 argument, 0
provided
atomic_no_default_constructor.cpp:3:8: note: candidate: constexpr
NoDefaultConstructor::NoDefaultConstructor(NoDefaultConstructor&&)
atomic_no_default_constructor.cpp:3:8: note: candidate expects 1 argument, 0
provided
More information about the Gcc-bugs
mailing list