我想知道...是否被认为是C ++ 11中的运算符。如果是这样的话,它的优先级是什么?
例如,考虑这个非常糟糕的例子并假设......是一个运营商。
template<typename T, typename...Args>
void foo(T _elm, Args... _args)
{
bar(something,_args...);
}
我如何知道bar
是否会在第一个参数something
和args...
展开的情况下运行,或者它是否会运行operator,(something, _args...)
的结果? (奖金问题:操作员可以使用可变参数模板超载吗?)
答案 0 :(得分:4)
我想知道...是否被认为是C ++ 11中的运算符
不,...
绝对不会被认为是C ++ 11中的运算符。如果你还记得,它也在错误处理的前一个标准中使用
catch(...)
虽然我不确定如何在内部分析和解析...
,但绝对不会将其视为运营商。
运营商可以使用可变参数模板重载吗?
我不确定,但我不这么认为。操作员必须采用一组指定的参数,如:
int operator + (int param1, my_obj param2);
我认为它不适用于可变参数模板。