【发布时间】:2013-05-13 19:16:21
【问题描述】:
我有一个带有布尔模板参数的类。该类将有几种方法,我需要专门研究类 bool 模板参数。有没有一种方法可以在不专门针对整个班级的情况下做到这一点?
下面的 Foo::bar() 是我的意思的一个例子,它不起作用,因为 std::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;
}
【问题讨论】:
-
std::is_same比较类型。M是一个常量,true和false是值,即它们不是类型。