これをテンプレートパラメータとして書き込もうとしています:
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()
テンプレート パラメーターとしてスマート ポインターを渡す特別な方法はありますか?