[Bug libstdc++/108714] New: Algorithms in require predicates to be copyable

2023-02-08 Thread b.stanimirov at abv dot bg via Gcc-bugs
: 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

[Bug libstdc++/108118] New: std::weak_ptr lacks a self-usurp check on move

2022-12-15 Thread b.stanimirov at abv dot bg via Gcc-bugs
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

[Bug libstdc++/98473] std::vector::insert(pos, first, last) doesn't compile for T which has a deleted assignment operator

2021-01-04 Thread b.stanimirov at abv dot bg via Gcc-bugs
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.

[Bug libstdc++/98473] std::vector::insert(pos, first, last) doesn't compile for T which has a deleted assignment operator

2021-01-01 Thread b.stanimirov at abv dot bg via Gcc-bugs
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

[Bug libstdc++/98473] New: std::vector::insert(pos, first, last) doesn't compile for T which has a deleted assignment operator

2020-12-29 Thread b.stanimirov at abv dot bg via Gcc-bugs
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 {

[Bug c++/78011] New: Compiler error when initializing a member of template type where the second template argument is a typedef

2016-10-17 Thread b.stanimirov at abv dot bg
: 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