【发布时间】:2012-03-10 17:33:27
【问题描述】:
我想知道 ... 在 C++11 中是否被视为运算符。如果是这样,它的优先级是什么?
例如考虑这个非常糟糕的例子并假设 ... 是一个运算符。
template<typename T, typename...Args>
void foo(T _elm, Args... _args)
{
bar(something,_args...);
}
我如何知道bar 是否会在其第一个参数为something 和args... 扩展的情况下运行,或者它是否会在operator,(something, _args...) 的结果上运行? (额外的问题:操作符可以用可变参数模板重载吗?)
【问题讨论】:
-
"可以用可变参数模板重载运算符" 不。或者至少,这样做你不会得到任何东西。运算符始终采用特定数量的参数。
-
见this。
-
@Nicol
operetor()可以接受任意数量的参数。
标签: c++ variadic-templates operator-precedence