: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: b.stanimirov at abv dot bg
Target Milestone: ---
Simple repro:
```
#include
#include
struct noncopyable {
noncopyable();
noncopyable(const noncopyable&) = delete;
noncopy
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: b.stanimirov at abv dot bg
Target Milestone: ---
If one somehow move-assigns a weak pointer to itself, it gets destroyed.
Demo: https://godbolt.org/z/eWdhYMhYe
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98473
--- Comment #3 from Borislav Stanimirov ---
By the way, this is not just some esoteric synthetic example. A type which is
copy-constructible but not copy-assignable is very useful to model immutable
objects.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98473
--- Comment #2 from Borislav Stanimirov ---
(In reply to Jonathan Wakely from comment #1)
> To meet the requirements of the standard we would need to insert them at the
> end and then use std::rotate to reposition them.
Or, to save move assignm
tatus: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: b.stanimirov at abv dot bg
Target Milestone: ---
Create a class `X` which is copy-constructible but not copy-assignable
```
struct X {
: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: b.stanimirov at abv dot bg
Target Milestone: ---
Repro:
typedef int int32;
struct foo
{
std::map bar = std::map{};
};
If the initialization