有模板的函数参数问题
首先,我有一个句柄类型:
// 实现略template<typename T> class MemPoolPointer;
// 一个forward declarationclass FooBar;typedef MemPoolPointer<FooBar> FooBarPtr;// 实际的定义,无关内容略,不然太多了class FooBar: public Referenced {public: static FooBarPtr New();};
template <typename T> class RefPointer {public: // 关键问题是关于这个构造器的 RefPointer(MemPoolPointer<T>& p);};
// 这样就不可以,编译时找不到合适的RefPointer函数 RefPointer<FooBar> obj1_p( FooBar::New() );// 这样先建个对象再塞进去就可以 FooBarPtr obj1 = FooBar::New(); RefPointer<FooBar> obj1_p(obj1);