В C++11 считается ли... оператором?
-
10-12-2019 - |
Вопрос
Мне было интересно, считается ли … оператором в C++11.И если это так, то каков его приоритет?
Например, рассмотрим этот довольно плохой пример и предположим...является оператором.
template<typename T, typename...Args>
void foo(T _elm, Args... _args)
{
bar(something,_args...);
}
Как я могу знать, bar
будет запущен с первым параметром something
и args...
расширен, или если он будет запущен в результате operator,(something, _args...)
?(бонусный вопрос:можно ли перегружать операторы шаблонами с переменным числом вариантов?)
Решение
Мне было интересно, считается ли... оператором в C++11.
Нет, ...
определенно не считается оператором в C++ 11.Если помните, в предыдущем стандарте он также использовался при обработке ошибок.
catch(...)
и хотя я не уверен, как ...
анализируется и анализируется внутри, он определенно не рассматривается как оператор.
Могут ли операторы быть перегружены шаблонами с переменным числом вариантов?
Я не уверен, но я так не думаю.Операторы должны принимать определенный набор параметров, например:
int operator + (int param1, my_obj param2);
Я не думаю, что это будет работать с вариационными шаблонами.