【发布时间】:2015-05-09 04:31:47
【问题描述】:
我知道简单模板和模板专业化是如何工作的,但我对此感到困惑。
程序第一行的T t = T() 是做什么的?这是默认参数吗?以及如何确定程序的输出?
#include <iostream>
template<class T, T t = T()>
class A
{
private:
template<bool b>
class B
{
public:
static const int m_n = b ? 1 : 0;
};
public:
static const int m_value = B<(t > T())>::m_n - B<(t < T())>::m_n;
};
int main()
{
std::cout << A<int, -9>::m_value
<< A<bool, true>::m_value
<< A<char>::m_value << std::endl;
return 0;
}
这是一个关于 C++ 评估测试的问题,我正在努力理解。
【问题讨论】: