C ++ 11 экспериментальные функции [дубликаты]

0

Каждый раз, когда я использую один из новых классов c++ 11, предлагает chrono.h и компилирует его с помощью GCC, он предупреждает меня, что функции c++ 11 все еще экспериментальны и должны быть активированы с использованием специального флага.

Его конец 2014 года на момент написания этого сообщения, как получилось, что, по крайней мере, через 3,5 года GCC по-прежнему отмечает c++ 11 как "экспериментальный", ведь после всех этих лет некоторые функции, которые c++ 11 предлагает нам, еще не реализованы?

Если это так, то почему?

Код:

#include <chrono>
#include <thread>
int main()
{
    std::this_thread::sleep_for(std::chrono::milliseconds(3000));
    return 0;
}

строка компилятора: g++ Source.cpp -o test.exe

Версия GCC: g++ (x86_64-posix-seh-rev0, построена проектом MinGW-W64) 4.9.2 Copyright (C) 2014 Free Software Foundation, Inc.

GCC выскакивает: C: /Program Files/mingw-w64/x86_64-4.9.2-posix-seh-rt_v3-rev0/mingw64/x86_64-w64- mingw32/include/c++/bits/c++0x_warning.h:32:2: error: #error This file requires G compiler and library support for the ISO c++ 2011 standard. This support is curr ently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 comp iler options. C: /Program Files/mingw-w64/x86_64-4.9.2-posix-seh-rt_v3-rev0/mingw64/x86_64-w64- mingw32/include/c++/bits/c++0x_warning.h:32:2: error: #error This file requires G compiler and library support for the ISO c++ 2011 standard. This support is curr ently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 comp iler options.

  • 5
    Пожалуйста, укажите версию вашего компилятора и какие флаги компилятора вы передаете своему компилятору (командная строка). Также может пригодиться конкретная функция и исходный код, где вы ее используете, а также реальное сообщение, которое gcc создает в этом случае.
  • 0
    Это правильный вопрос, если учесть совет @Yakk's Yakk
Показать ещё 7 комментариев
Теги:
c++11

1 ответ

4
Лучший ответ

Как только я добавлю. '-std = С++ 11' в параметры компилятора. Я больше не получаю сообщение об ошибке/предупреждении, но я уже знал об этом. Я был озадачен тем, почему он дал мне предупреждение, не добавляя его. Должен ли текущий std на GCC быть С++ 11 уже? Почему это все еще не так?

Системы программного обеспечения и сборки там используют значения по умолчанию и ожидают, что они останутся достаточно стабильными. GCC не просто обновляет настройки по умолчанию каждый раз, когда доступны новые стандарты или функции.

Если вам нужна конкретная версия стандарта, вы должны указать ее явно.

  • 0
    «каждый раз, когда появляются новые стандарты» - лол, 1998-2011 годам исполнилось 13 лет. Если это слишком много для вас, ИТ, возможно, не профессия для вас.
  • 0
    @MSalters Было несколько больше стандартных изменений, чем только эти два, и было намного больше, кроме случаев, когда были введены ломаные изменения, которые ломали бы сборки, если бы они также были сделаны по умолчанию.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню