代码:
#include#include #include using namespace std; class AAA{ public: AAA(){} ~AAA(){} }; class BBB{ public: BBB(){} ~BBB(){} }; template class ExpImplPtr{ public: ExpImplPtr(std::unique_ptr && ptr) : ptr_(ptr.release()) { std::cout << "模板 通用版本 --- " << std::endl; } private: std::unique_ptr ptr_; }; template<> class ExpImplPtr { public: ExpImplPtr(std::unique_ptr && ptr) : ptr_(ptr.release()) { std::cout << "模板 特例化 --- " << std::endl; } private: std::unique_ptr ptr_; }; int main(int argc, char const *argv[]) { ExpImplPtr aa(std::make_unique ()); //模板 泛化 std::cout << "----" << std::endl; ExpImplPtr bb(std::make_unique ()); //模板 特例化 return 0; }



