元运算符的优先级是什么?

fre*_*low 7 c++ ellipsis operator-precedence variadic-templates c++11

元操作符的优先级是什么,...它的作用是解压缩模板类型参数包?我想它很低,但它有多低?C++标准说:

运算符的优先级不是直接指定的,但可以从语法中派生.

有谁接受挑战?当然,...不会出现在C++ 03运算符优先级表中.


好吧,如果...不是运营商,究竟是什么确定std::forward<Args>(args)...适用于整个序列std::forward<Args>(args),而不仅仅是(args),例如?

Ale*_* C. 5

它似乎不是一个运营商.从N3092开始(抱歉,我没有最近的草稿)

[14.5.3] 4 /包扩展是一系列令牌,它们命名一个或多个参数包,后跟省略号.令牌序列称为扩展模式; 其语法取决于扩展发生的上下文.包扩展可以在以下上下文中发生:

  • 在初始化列表中(8.5); 该模式是初始化子句.
  • 在base-specifier-list(10)中; 模式是基本说明符.
  • 在mem-initializer-list(12.6.2)中; 该模式是一个mem-initializer.
  • 在模板参数列表中(14.3); 模式是模板参数.
  • 在动态异常规范(15.4)中; 模式是type-id.
  • 在属性列表(7.6.1)中; 模式是一个属性.
  • 在捕获列表中(5.1.2); 模式是捕获.[例:

    template<class ... Types> void f(Types ... rest);
    template<class ... Types> void g(Types ... rest) {
        f(&rest ...); // “&rest ...” is a pack expansion; “&rest” is its pattern
    }
    
    Run Code Online (Sandbox Code Playgroud)

    - 结束例子]