Включить метод на основе параметра логического шаблона

Я хочу реализовать частную функцию на основе логического параметра шаблона. Что-то вроде того:

#include <iostream>

using namespace std;

template <bool is_enabled = true>
class Aggregator {
public:
    void fun(int a) {
        funInternal(a);
    }

private:
    void funInternal(int a, typename std::enable_if<is_enabled>::type* = 0) {
        std::cout << "Feature is enabled!" << std::endl;
    }

    void funInternal(int a, typename std::enable_if<!is_enabled>::type* = 0) {
        std::cout << "Feature is disabled!" << std::endl;
    }
};

int main()
{
   Aggregator<true> a1;
   Aggregator<false> a2;

   a1.fun(5);
   a2.fun(5);

   return 0;
}

Но программа выше не компилируется: ошибка: нет типа с именем 'type' в 'struct std :: enable_if' void funInternal (int a, typename std :: enable_if :: type * = 0).

Можно ли реализовать желаемое поведение с enable_if?

Ответы на вопрос(1)

Ваш ответ на вопрос