在使用 SFINAE 的模板 class 之外定义函数?
Define function outside template class that uses SFINAE?
在下面的示例中,我想在这种情况下在 class 之外定义析构函数,none 目前为止我尝试过的万亿语法有效:
template<typename OjectType,
typename = std::enable_if_t<std::is_base_of_v<SomeClass, OjectType>>>
class SampleClass
{
public:
~SampleClass();
};
// How to define this outside class?
template<typename ObjectType>
SampleClass<ObjectType>::~SampleClass()
{
}
你很接近,你忘记指定第二个模板参数(没有默认值):
template <typename ObjectType, typename Dummy>
SampleClass<ObjectType, Dummy>::~SampleClass()
{
// ...
}
在下面的示例中,我想在这种情况下在 class 之外定义析构函数,none 目前为止我尝试过的万亿语法有效:
template<typename OjectType,
typename = std::enable_if_t<std::is_base_of_v<SomeClass, OjectType>>>
class SampleClass
{
public:
~SampleClass();
};
// How to define this outside class?
template<typename ObjectType>
SampleClass<ObjectType>::~SampleClass()
{
}
你很接近,你忘记指定第二个模板参数(没有默认值):
template <typename ObjectType, typename Dummy>
SampleClass<ObjectType, Dummy>::~SampleClass()
{
// ...
}