If I understand correctly, you want to disable pass-by-value semantics? I'm not sure what you're referring to in your code example as well.Or, are you trying to say that delegating constructors should not be allowed to pass-by-value?Op ma 13 mei 2024 om 16:36 schreef David wang via Std-Proposals <std-proposals@lists.isocpp.org>:--Hi everyone.In C++, we can pass an object of the same type by value to the constructor of the class, which results in a copy of the same type or its subtype being required.The sequence of constructor calls can be greatly optimized by disabling copying of the same type or its subtypes before constructing an object. I'm confused why C++ doesn't disable it.That is, when we are going to do something(constructing an object via some constructor), the prerequisite is that we need to do something of the same kind. For example, the derived(int i, derived that) and template <typename T> base(T x) in the code snippet below.struct base {
base() {}
template <typename T> base(T x) {}
};
struct derived : public base {
derived(){}
derived(int i, derived that): base(that) {}
derived(derived& that): base(that) {}
};
int main() {
derived d1;
derived d2(d1);
return 0;
}
Std-Proposals mailing list
Std-Proposals@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
--Rhidian De WitSoftware Engineer - Barco