Допустим, у вас есть следующий простой main.cpp file:
#include
#include
#include
using namespace std;
int main() {
const string FILENAME = "foo.txt";
ifstream somefile(FILENAME);
populations.close();
return 0;
}
Это прекрасно компилируется через Visual Studio C ++ 2010.
Однако в системе на базе Linux, если я выполню make main
и скомпилирую, мы получим ожидаемую ошибку, поскольку мы этого не сделали. вызовите c_str ()
для строковой константы, например:
ifstream somefile(FILENAME.c_str());
Как comm только известна и описана в этой ветке SO .
Как заставить VS вести себя как gcc / g ++ и вызвать ошибку компиляции для приведенного выше кода? Или как я могу заставить gcc / g ++ вести себя как VS и скомпилировать вышеуказанное без ошибок? (Это простой вопрос обновления моего компилятора GNU?)
(Я не верю, что отключение расширений компилятора - это решение, поскольку я сделал это, и он по-прежнему компилируется без ошибок.)