我试试
template<class T>
struct getData
{
boost::shared_ptr<T> operator()()
{
return boost::shared_ptr<T>(new T());
}
};
struct getVector : public getData<std::vector<int>>{};
我想通过继承来指定()
返回...但它似乎没有返回所需的类型。我做错了什么?
答案 0 :(得分:2)
您不需要返回类型
boost::shared_ptr<T> operator()()
^^^^^^^^^^^^^^^^^^^^
{
return boost::shared_ptr<T>(new T());
}