我正在尝试将其写为模板参数:
template <class T>
struct FooStruct {
template <void F(std::unique_ptr<T> Object)>
void FooMethod()
{
//....
}
};
然后出现错误:
error C2993: 'std::unique_ptr<T>' : illegal type for non-type template parameter 'Object'
这种方法效果很好:
template <class T>
struct FooStruct {
template <class UT,void F(UT Object)>
void FooMethod()
{
//....
}
};
如果我传入参数,std::unique_ptr<Person>
那么一切正常。UT
FooMethod()
有没有一种特殊的方法可以将智能指针作为模板参数传递?