What exactly occurs to a member variable with a default value, during a defaulted copy/move construction? As so:
struct A {bool a = true;};
A x;
x.a = false;
A y = x;
I can imagine a few different ways this works, equivalently written as
struct A {bool a;}; //no default
//option 1
A::A(const A& other) noexcept : a(other.a) {}
//option 2
A::A(const A& other) noexcept : a(true) {a = other.a;}
//option 3
A::A(const A& other) noexcept {a = other.a;}
//option 4 (hopefully not)
A::A(const A& other) noexcept : a(true) {}
With the obvious exception that using these would make A not TriviallyCopyable