Обычно, я программирую в среде Qt Creator (на текущий момент это 4.4.1). Сегодня, я решил выйти за рамки привычной среды и попробовал написать код в Vim (выходить из vim умею очень давно :)), а сборку выполнить через консоль. Но вот с какой особенностью я столкнулся и не могу понять разницу.
Если написать следующий код в Qt, собрать и запустить, то всё будет работать замечательно:
#include <iostream>
using namespace std;
int main() {
auto x = 0;
cin >> x;
cout << x << endl;
return 0;
}
Если этот же код попытаться собрать через команду: g++ -c *.cpp
, то получаем ошибку:
main.cpp:6:10: error: ‘x’ does not name a type
auto x = 0;
^
main.cpp:7:12: error: ‘x’ was not declared in this scope
cin >> x;
^
Объясните мне разницу, пожалуйста.
gcc --version
gcc (SUSE Linux) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
Просто Qt Creator сам добавляет поддержку С++11 строчкой "CONFIG += c++11" в pro файле. А при вызове руками g++ надо задавать поддержку новых станлартов явно. Это -std= ... Смотрите man gсс по части данной опции. Как правило это "c++11" (-std=c++11)
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Напишите программу runsim, осуществляющую контроль количества одновременно работающих UNIX-приложенийПрограмма читает UNIX-команду со стандартного...
Начал программировать под андроидНе профи но легкие приложения получаются
В спринг-бут проекте в папке resources есть шаблон xmlМеняется в нем только одно значение