nik*_*ack 4 c++ templates template-specialization
请解释模板专业化选择的规则.我有一个例子:
template<typename T1, typename T2 = int>
struct S : false_type{};
template<typename T>
struct S<T, float> : true_type{};
cout << boolalpha << S<float>::value;
Run Code Online (Sandbox Code Playgroud)
为什么输出false?一般来说,typename T2 = int专业类中的默认模板参数会发生什么?它会引入一些影响吗?
选择模板专业化分为五个步骤:
<T1, T2 = int> S)T1 <- float)T2 <- int)<float, int>不匹配<T, float>,所以忽略专业化;只留下可能性是主要模板)| 归档时间: |
|
| 查看次数: |
510 次 |
| 最近记录: |