ifstream нет подходящего конструктора для инициализации - PullRequest
1 голос
/ 24 апреля 2019

Я использую QT Creator и MinGW (обе последние версии), и мне не удается заставить ifstream использовать конструктор аргументов пути, добавленный в c ++ 17.

Компиляция приведенного ниже кода завершится неудачно с:

no matching constructor for initialization of 'std::ifstream' 

У меня есть CONFIG += c++17 в моем файле QT .pro и 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);
}

1 Ответ

2 голосов
/ 24 апреля 2019

@ user1406186, я повторил вашу ту же ошибку и смог скомпилировать ее, применив следующие изменения в файле .pro, и мне пришлось указать QMAKE, который мне нужно было использовать:

TEMPLATE = app
CONFIG += console c++11

QMAKE_CXXFLAGS += -std=gnu++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += \
        main.cpp

HEADERS +=
LIBS += -lstdc++fs

Он также скомпилирован со следующими стандартами C ++ 14 / C ++ 11:

TEMPLATE = app
CONFIG += console c++14

QMAKE_CXXFLAGS += -std=gnu++14
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += \
        main.cpp

HEADERS +=
LIBS += -lstdc++fs
...