C++ 用auto初始化QFile

C++ 用auto初始化QFile,c++,qt,C++,Qt,我采用了使用自动类型推断的现代风格,我不明白为什么会这样: auto file = QFile{filepath}; 给出以下错误: 错误C2280:'QFile::QFileconst QFile&':尝试引用 删除函数 此函数已从SDK版本中删除或不再标记为公共函数。按照编写代码的方式,先调用,然后调用其副本构造函数。最后一个未在QFile类中定义,因此编译器错误消息告知此函数已被删除 因此,您不能在这里真正使用auto。但您仍然可以初始化QFile实例,如下所示: QFile file{

我采用了使用自动类型推断的现代风格,我不明白为什么会这样:

auto file = QFile{filepath};
给出以下错误:

错误C2280:'QFile::QFileconst QFile&':尝试引用 删除函数


此函数已从SDK版本中删除或不再标记为公共函数。

按照编写代码的方式,先调用,然后调用其副本构造函数。最后一个未在QFile类中定义,因此编译器错误消息告知此函数已被删除

因此,您不能在这里真正使用auto。但您仍然可以初始化QFile实例,如下所示:

QFile file{filepath};
// or
QFile file = {filepath};

这里有类似的问题和您问题的确切答案:我发现这种语法在C++17中是有效的,因为它引入了复制省略