LINUX.ORG.RU

Внезапно отключился 14 стандарт

 , ,


0

2

Проект не трогал, в CMakeLists.txt:

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O2 -Wall -Wextra -pedantic")

Вчера собиралось, сегодня не собирается:

error: ‘make_unique’ is not a member of ‘std’
  internalData_ = std::make_unique<InternalData> ();

Причем код 11 стандарта работает, а 14 нет. __cplusplus имеет значение 201103L, а должен быть больше. cmake не обновлял. Единственное, что обновлялось - Qt.

GCC:

gcc-config -l
 [1] x86_64-pc-linux-gnu-5.4.0 *

Пробовал выставить -std=c++17 - не работает.

Отдельно взятый пример, скомпиленный g++ -std=c++14 main.cpp компилится, отсюда вывод, что дело таки в cmake.

Помогите, а то рабочий день проходит впустую.

Грохни кеш проекта cmake.

если не поможет, смотри что у тебя в CMAKE_CXX_FLAGS на самом деле.

зыж у меня $ cmake --version cmake version 3.5.1, работает

ззыж Qt не пробовал им собирать.

anonymous
()

Есть же Verbose-флаги у Makefile V=1 (VERBOSE=1), и у самого cmake: --trace-expand, --debug-output

Оперируй ими и смотри что там где не подхватывается.

EXL ★★★★★
()

неправильно ты, дядя Федор, стандарт устанавливаешь. Надо так:

set(CMAKE_CXX_STANDARD 14)

anonymous
()
Ответ на: комментарий от unC0Rr

Хм.

cd /var/tmp/build/src/Core && /usr/bin/c++   -DAPPLICATION_VERSION=\"0.0.1.0\" -DBOOST_LOG_DYN_LINK -DQT_CORE_LIB -DQT_MESSAGELOGCONTEXT -DQT_NO_DEBUG -I/var/tmp/build/src/Core -I/home/panter/program/SocketProxy/src/Core -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++  -std=c++14 -O2 -Wall -Wextra -pedantic   -fPIC -std=gnu++11 -o CMakeFiles/Core.dir/ApplicationSettings.cpp.o -c /home/panter/program/SocketProxy/src/Core/ApplicationSettings.cpp
/home/panter/program/SocketProxy/src/Core/ApplicationSettings.cpp: In constructor ‘ApplicationSettings::ApplicationSettings()’:
/home/panter/program/SocketProxy/src/Core/ApplicationSettings.cpp:23:18: error: ‘make_unique’ is not a member of ‘std’
  internalData_ = std::make_unique<InternalData> ();
                  ^

panter_dsd ★★★★
() автор топика

неужели в 21-м веке кто-то пишет ещё на с плюх плюхе, да ещё и новые стандарты осваивает. я ещё понимаю там легаси с дуру когда-то на этом убожестве написанное поддерживать. но всерьёз писать что-то новое...

anonymous
()
Ответ на: комментарий от anonymous

Не гони! Я вообще пишу на Обероне! Этот язык — плод долгих трудов людей преданных программированию как науке , а не всяких недоучек из Белл Лаболаториез.

anonymous
()
Ответ на: комментарий от anonymous

неужели в 21-м веке кто-то пишет ещё на с плюх плюхе, да ещё и новые стандарты осваивает.

Маргиналы :-)

я ещё понимаю там легаси с дуру когда-то на этом убожестве написанное поддерживать. но всерьёз писать что-то новое

Великовозрастные маргиналы :-)

anonymous
()
Ответ на: комментарий от anonymous

Я вообще пишу на Обероне

Ну и где тонны полезного софта, написанные на Обероне? Редакторы, браузеры, файловые менеджеры? И вроде, Оберон вообще плохо ложится в рамки свободного софта...

anonymous
()
Ответ на: комментарий от anonymous

Оберон вообще плохо ложится в рамки свободного софта

Шта? Есть даже целая ОС написанная на Обероне. Многоплатформенная. можно запускать под вендой и *никсом. Всё перечисленное тобой в ней есть. И таки да она свободная.

https://trac.inf.ethz.ch/trac/lecturers/a2

anonymous
()
Ответ на: комментарий от anonymous

Есть даже целая ОС написанная на Обероне. Многоплатформенная. можно запускать под вендой и *никсом.

ОС, которую нужно запускать из-под другой ОС. Норм, че.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

ОС, которую нужно запускать из-под другой ОС. Норм, че.

А вот это ты некрасиво поступаешь. В моём сообщении написано «можно», а не «нужно».

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

тихо тихо. Если звезды этогосамого, то значит это кому-то этосамое. через оберон постигается осестроение неплохо. Там все грамотно и продумано.

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

У этой ОС есть уникальная особенность: она никому не нужна. Вообще.

Она нужна как минимум тем, кто хочет понять как на самом деле следует писать ОС. И как вообще следует писать программы. А эти твои популярные, которыми все пользуются дают понять ровно противоположное.

anonymous
()
Ответ на: комментарий от anonymous

Она нужна как минимум тем, кто хочет понять как на самом деле следует писать ОС.

Учиться у безработного зарабатывать деньги?

anonymous
()
Ответ на: комментарий от anonymous

Интересно среди безработных программистов кого больше? Программирующих на Оберон или программирующих на си дабл плюх.

anonymous
()
Ответ на: комментарий от anonymous

О, помнится, я как-то лет 5 назад скачивал её ISO, но он молча вис при загрузке.

Надо будет ещё разок попробовать, времени много прошло...

hobbit ★★★★★
()
Ответ на: комментарий от andreyu

ОС, которую нужно запускать из-под другой ОС. Норм, че.

Emacs называется :-)

anonymous
()
Ответ на: комментарий от anonymous

Она нужна как минимум тем, кто хочет понять как на самом деле следует писать ОС

Так иди и смотри как живут голливудские звезды на виллах - вот как надо жить. Только это идет вразрез с экономическими реалиями.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Так иди и смотри как живут голливудские звезды на виллах - вот как надо жить. Только это идет вразрез с экономическими реалиями.

Очень правильная аналогия. Программировать си дабл плюхе — это как читать жёлтую прессу. Занятие бесполезное, но создаёт у читателя ложное впечатление, сопричастности к тем, кто живёт на виллах. А программа на Обероне — это как Гердт в роли Паниковского, как Евстегнеев в роли проф. Преображенского. Так что рациональнее в плане знакомства с актёрским мастерством читать жёлтую прессу или посмотреть фильм с участием гениальных актёров? Вот и с программированием так же.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.