gcc заставляет использовать 11 стандарт?

159
05 мая 2019, 06:20

В gcc возникает странная ошибка, когда пытаюсь скомпилировать этот код. В clang такого нет. В чём проблема?

#error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

#include <random> 
int main() {
    int x; //Почему тут ошибка??/
    x = 0x42; // <--
}
Answer 1

В коде используется заголовочный файл <random>, характерный для стандарта c++11 и выше, потому и наблюдается упомянутая ошибка. Дополнительно в коде имеются приколы с триграфами (которые, кстати, в с++17 уже запретили), может это тоже косвенно дало причину думать, что ошибка не там, где она действительно есть.

По поводу того, на каком основании clang собирает код с <random> при режиме -std=c++98 задал вопрос на enSO Enforcing C++98/03 for clang. В комментариях люди выражают уверенность, что это баг clang.

READ ALSO
Ошибка с выводом-вводом

Ошибка с выводом-вводом

Есть такой кусок кодаПроблема в том, что когда выводится "ФИО: ", то он почему-то переходит на новую строку

147
Как прочитать данные с файла fstream

Как прочитать данные с файла fstream

есть файл inputtxt, в нем три строки, данные из первой строки этого файла нужно передать переменной int n, на первой строке только одна цифра

138