У меня есть класс, который принимает параметр шаблона bool. Класс будет иметь несколько методов, которые мне нужно специализировать на параметре шаблона класса bool. Есть ли способ сделать это, не специализируясь на самом классе?C++ class member function specialization on bool values
Foo :: бар() ниже является примером того, что я имею в виду, он не работает, так как станд :: is_same работает с типами и не значениями
Благодарности.
template<bool Mode>
class Foo
{
public:
template<bool M=Mode, typename std::enable_if<std::is_same<M,true>::value>::type * = 0>
void bar()
{
std::cout << "true" << std::endl;
}
template<bool M=Mode, typename std::enable_if<std::is_same<M,false>::value>::type * = 0>
void bar()
{
std::cout << "false" << std::endl;
}
[ 'станд :: is_same'] (http://en.cppreference.com/w/cpp/types/is_same) сравнивает ** типы **. 'M' является константой,' true' и 'false' являются значениями, т. Е. Они не являются типами. – dyp