mic*_*mic 0 c++ templates using variadic-templates c++11
我写了一个小using语句,可以轻松访问可变参数模板参数包的类型.
template<size_t index, typename args...>
using get = std::tuple_element<index, std::tuple<args...>>::type;
Run Code Online (Sandbox Code Playgroud)
但是用clang(3.5.0)或gcc(4.9.0)编译它会失败.这是clang的错误输出:
error: expected ',' or '>' in template-parameter-list template<size_t index, typename args...>
^
Run Code Online (Sandbox Code Playgroud)
该using语句是否与可变参数模板不可组合?或者我做错了什么?
参数包的省略号需要在typename(或class)关键字之后.它在展开包时追踪参数名称.
template<size_t index, typename... args>
// ^^^
using get = typename std::tuple_element<index, std::tuple<args...>>::type;
// ^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
您还缺少typename引用嵌套依赖类型时所需的关键字.
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |