Определить функцию вне класса шаблона, который использует SFINAE? - PullRequest
0 голосов
/ 26 апреля 2020

В приведенном ниже примере я хочу определить деструктор в этом случае вне класса, ни один из триллионов синтаксисов, которые я пробовал до сих пор, не работает:

    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()
    {
    }

1 Ответ

4 голосов
/ 26 апреля 2020

Вы были близки, вы забыли указать второй параметр шаблона (без значения по умолчанию):

template <typename ObjectType, typename Dummy>
SampleClass<ObjectType, Dummy>::~SampleClass()
{
    // ...
}
...