【发布时间】:2019-04-24 14:41:17
【问题描述】:
我正在使用 QT Creator 和 MinGW(均为最新版本),但无法让 ifstream 使用在 c++17 中添加的路径参数构造函数。
编译以下代码将失败:
no matching constructor for initialization of 'std::ifstream'
我的 QT .pro 文件中有 CONFIG += c++17 和 LIBS += -lstdc++fs
MCV https://gcc.godbolt.org/z/Lb3MNT
#include <experimental/filesystem>
#include <fstream>
int main() {
const std::experimental::filesystem::path my_path = "C:/";
std::ifstream input_file_stream(my_path);
}
【问题讨论】:
-
这看起来只是一个声明,它本身不应该导致你提到的错误。请提供一个独立的小例子,可以在cpp.sh 上编译(或产生编译器错误)
-
如果您改用
std::filesystem::path会发生什么?filesystem是 C++17 的一部分,因此您不需要experimental。 -
出现文件系统未找到错误。我假设 MinGW 与 c++17 文件系统不兼容?
-
cpp.sh 找不到头文件系统
-
有道理,cpp.sh 还不支持 C++17。也许您可以在似乎支持它的gcc.godbolt.org 或onlinegdb.com/online_c++_compiler 上执行此操作
标签: c++ qt qt-creator c++17