【发布时间】:2020-05-12 06:56:51
【问题描述】:
考虑以下引用,它说:
[dcl.fct]/16
包含省略号的 declarator-id 或 abstract-declarator 只能在参数声明中使用。[...]
我同意包含省略号的declarator-id只能在参数声明中使用,因为我们不能在任何地方使用...id-expression之类的东西,它只能出现在参数中-declaration,所以它是 100% 清楚的。但是,关于包含省略号的 abstract-declarator 只能在参数声明中使用,请考虑以下代码:
#include <iostream>
#include <tuple>
template<typename...T>
void func(T...){
std::tuple<T...> tup; //#1
}
类型 ID:
type-specifier-seq abstract-declarator(opt)
#1 怎么样,不是参数声明,但是,包含省略号的抽象声明符在 type-id 中使用。所以,我对 的理解是>abstract-declarator错了?
【问题讨论】:
标签: c++ language-lawyer