class A { public: A() = default; A(const A&) = delete; A& operator=(const A&) = delete; }; class B{ public: B(const A& a) : a{a} { } private: const A& a; }; int main() { A a{}; B b{a}; }
Standard input is empty
prog.cpp: In constructor ‘B::B(const A&)’: prog.cpp:11:14: error: use of deleted function ‘A::A(const A&)’ : a{a} ^ prog.cpp:4:5: error: declared here A(const A&) = delete; ^
Standard output is empty