Компиляция и запуск кода на C++17 STL

Если программист разрабатывает и тестирует код  C++17 STL в операционных систе­мах Linux и MacOS с использованием компиляторов GNU C++, g++, LLVM C++, clang++, то скомпилировать и запустить программу из командной оболочки с помощью g++ следу­ющей командой:

$ g++ -std=c++1z -o recipe_app recipe_code.cpp

Аналогичная команда с использованием clang++:

$ clang++ -std=c++1z -o recipe_app recipe_code.cpp

Оба примера командной строки предполагают, что recipe_code.cpp является текстовым файлом, содержащим ваш код С++. После компиляции программы исполняемый бинарный файл получит имя recipe_app, его можно будет запустить следующим образом:

$ ./recipe_app

Очень часто программисту приходится считывать все содержимое файлов через стандартный ввод. В таких случаях мы используем стандартные каналы UNIX и команду cat, чтобы направить содержимое файла в наше приложение:

$ cat file.txt | ./recipe_app

Это работает в ОС Linux и MacOS. В оболочке Microsoft Windows команда выглядит так:

> recipe_app.exe < file.txt

Если вы запускаете программы не из оболочки, а из интегрированной среды разработки Microsoft Visual Studio, то вам нужно открыть вкладку Configuration propertiesDebugging (Свойства конфигурацииОтладка) и добавить фраг­мент < file.txt в командную строку приложения, которое запускает Visual Studio.

 

Предупреждения для новичков

Возможно, некоторые начинающие программисты могут столкнуться с ситуацией, когда у вас не будут компилироваться ваши файлы. Все зависит от того, какая часть C++17 STL реализована в вашем дистрибути­ве STL.

При написании книги приходилось добавлять префикс пути experimental/ к за­головкам <execution_policy> и <filesystem>. Кроме того, в каталоге experimental/

вашего дистрибутива STL могут находиться дополнительные заголовочные файлы, например algorithm, numeric и т. д., в зависимости от того, насколько новым и ста­бильным является дистрибутив.

Это верно и для пространств имен, поддерживающих новейшие возможно­сти. Элементы библиотеки, включенные в экспериментальную часть STL, обычно экспортируются внутрь пространства имен std::experimental (а не std).

Вас заинтересует / Intresting for you:

Байт-код Java: чудеса или реал...
Байт-код Java: чудеса или реал... 4716 просмотров Дэн Mon, 05 Nov 2018, 10:54:09
Программирование для Adroid: с...
Программирование для Adroid: с... 3490 просмотров Семен Wed, 06 Mar 2019, 16:11:02
Создание приложения с помощью ...
Создание приложения с помощью ... 5474 просмотров Илья Дергунов Mon, 05 Nov 2018, 12:47:50
Java SE 8: Лямбда-выражения и ...
Java SE 8: Лямбда-выражения и ... 2792 просмотров Дэн Mon, 05 Nov 2018, 16:54:47
Войдите чтобы комментировать