-1
據我所知,有一些在默認情況下傳播到各個領域成員的一些特殊功能。 : -
拷貝賦值,拷貝構造函數,賦值移動,移動的構造函數,析構函數等效仿的是傳播到像運營商各個領域的功能=和析構
class B{};
class C{B b;};
C c1; C c2;
c1=c2; //<-- automatic invoke B::operator=()
是否可以部署一些C++技巧創造/模擬有這樣一個很酷的功能自定義函數?
如果沒有,它是一個完整的答案。
如果是,請顯示演示;我相信它應該是一個免費的功能,例如: -
class A{};
class B{};
void f(A a){}
class C{public: A a;B b;};
//no need to code "void f(C c){f(c.a);}"
C c1;
f(c1); //<-- automatic invoke f(c1.a), but not invoke f(c1.b)
模板功能和SFINAE可能是有用的,但我不知道如何在這種情況下適用。
我覺得可能對一些更先進的RAII是有用的。