https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93562
Bug ID: 93562
Summary: [10 Regression] unique_ptr::swap requires complete
type
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: rejects-valid
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: redi at gcc dot gnu.org
Target Milestone: ---
#include <memory>
struct bar;
struct foo {
foo();
~foo();
void swap(foo& f) noexcept {
up.swap(f.up); // same error for std::swap(up, f.up)
}
std::unique_ptr<bar> up;
};
/home/jwakely/gcc/10/include/c++/10.0.1/bits/unique_ptr.h:79:16: error: invalid
application of 'sizeof' to incomplete type 'bar'
79 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~