可能重复:
Can parentheses take arbitrary identifiers as arguments? C++
我的问题是关于使用参数包'unpack'运算符...
。下面的代码片段在g ++ 4.7.1中给出了编译器错误(在'...'之前的预期参数包,在最后一行),我想知道为什么。
template<class T> struct type_wrapper
{ typedef T type; };
template<class...Ts> struct variadic_wrapper { };
// This compiles:
template<class...Ts> struct variadic_type_wrapper
{ typedef variadic_wrapper<typename type_wrapper<Ts>::type...> type; };
// Parentheses screw it up:
// Error: expected parameter pack before '...'
template<class...Ts> struct variadic_type_wrapper
{ typedef variadic_wrapper<(typename type_wrapper<Ts>::type)...> type; };
表达式(...)
是否隐藏了基础类型的arity?
谢谢你清理它!