tem*_*boy 53 c++ decltype sfinae c++11 trailing-return-type
我发现这里的代码看起来像这样:
auto f(T& t, size_t n) -> decltype(t.reserve(n), void()) { .. }
Run Code Online (Sandbox Code Playgroud)
在我阅读的所有文档中,我被告知decltype签名为:
decltype( entity )
要么
decltype( expression )
任何地方都没有第二个论点.至少这是cppreference所指出的.这是第二个参数decltype吗?如果是这样,它会做什么?
Pub*_*bby 71
因为它是一个表达式,逗号只是逗号运算符(意思是类型是rhs side的类型:) void,而不是另一个参数.
该代码使用的是SFINAE - 如果t.reserve(n)存在则启用但是它希望将返回类型保持为void.
| 归档时间: |
|
| 查看次数: |
3142 次 |
| 最近记录: |