https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106239

            Bug ID: 106239
           Summary: vector::resize(size_type, const value_type&) should
                    not require copy-assignability
           Product: gcc
           Version: 12.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dan.raviv at gmail dot com
  Target Milestone: ---

Copy-constructibility should be enough.
Related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981

https://godbolt.org/z/a1sYxThxG
Compiles on Clang but not GCC:

#include <vector>

class C {
    const int m_x;
public:
    C(int x) : m_x (x) {}
};

int main()
{
    auto v = std::vector<C>(10, C(42));
    // v.resize(11);     //   Correctly does not compile
    v.resize(11, C(42)); // Incorrectly does not compile on GCC
}

Reply via email to