: 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
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 {
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
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.
: 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=104165
Borislav Stanimirov changed:
What|Removed |Added
CC||b.stanimirov at abv dot bg
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: b.stanimirov at abv dot bg
Target Milestone: ---
I reproduce this without fail on gcc 13 to trunk (as of this post)
This code expectedly produces no warnings
ty: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: b.stanimirov at abv dot bg
Target Milestone: ---
Consider the simple class:
```
template
class id {
T m_id;
public:
constexpr id() : m_id() {}
constexpr boo
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121327
--- Comment #1 from Borislav Stanimirov ---
So, the problem is that `std::equality_comparable_with` is bidirectional.
It checks lhs==rhs and rhs==lhs. Using it with two id types will lead to an
infinite recursion of checking `rhs==X`. The reaso
10 matches
Mail list logo