生命了一个泛化copy构造函数,当类型T和Y相同时,泛化copy构造函数会被具现为“正常的”copy构造函数。那么究竟编译器会暗自生成一个copy构造函数?或当某个tr1::shared_ptr对象根据另一个同型的tr1::shared_ptr对象展开构造行为时,编译器会将“泛化copy构造函数模板”具现化呢?
如果自己不定义的copy构造函数的话,就会调用泛化copy构造函数,如果自己定义了,就调用copy构造函数。
总结:
1.请使用member function templates(成员函数模板)生成“可接受所有兼容类型”的函数
2.如果你声明member templates用于“泛化copy构造”或“泛化assignment操作”,你还是需要声明正常的copy构造函数和copy assignment操作符。