bar*_*ney 2 c++ templates c++11 c++14
在Josuttis的书中,我有以下示例:
template<typename T1, typename T2>
auto max (T1 a, T2 b) -> decltype(b<a?a:b)
{
return b<a?a:b;
}
Run Code Online (Sandbox Code Playgroud)
但是
b<a
Run Code Online (Sandbox Code Playgroud)
部分属于运行时,对不对?那么,为什么要在decltype中对其进行比较(以在模板实例化期间找出静态类型)?以及它如何在编译时正常工作?
看来,你认为decltype(b<a?a:b)产生两种类型a或b取决于运行时的值。不会,而是产生它们的通用类型。
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |