I want to implement a private function based on a boolean template parameter. Something like that:
#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;
}
But the program above does not compile: error: no type named 'type' in 'struct std::enable_if' void funInternal(int a, typename std::enable_if::type* = 0).
Is it possible to realize the desired behavior with enable_if?