{note}
h2. Скачать C++ IDE для DL:
Быстро скачать с Google Drive: https://drive.google.com/open?id=1jMRr8lUVMikH1xgPW0PPxapTsi83LKkT
[CodeBlocks-DL.7z|http://dl.gsu.by/images/Downloads/CPP/CodeBlocks-17.12/CodeBlocks-DL.7z] (64 Мб)
[CodeBlocks-DL.zip|http://dl.gsu.by/images/Downloads/CPP/CodeBlocks-17.12/CodeBlocks-DL.zip] (157 Мб)
[default.conf|http://dl.gsu.by/images/Downloads/CPP/CodeBlocks-17.12/default.conf] (отдельно настройки)

h5. [Как распаковать и запустить|http://dl.gsu.by/images/_i4f/cpp/CB-inst.doc]

В сборку включено:
* MinGW-w64 GCC 7.3.0 [*|https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/threads-win32/dwarf/i686-7.3.0-release-win32-dwarf-rt_v5-rev0.7z/download]
* Code::Blocks 17.12 [*|http://sourceforge.net/projects/codeblocks/files/Binaries/17.12/Windows/codeblocks-17.12-nosetup.zip] [portable|http://wiki.codeblocks.org/index.php/FAQ-Settings#Q:_Where_does_C::B.27s_configuration_file_store.3F_How_do_I_make_Code::Blocks_portable.3F]
* По умолчанию используется компилятор "GNU GCC Compiler 7.3.0 Debug" с доступными под mingw [страховочными|http://codeforces.com/blog/entry/15547] [опциями|https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html] {noformat}-std=c\+\+17 -static -m32 -march=native -mfpmath=sse -Wl,--stack,67108864 -Og -g
-pedantic -Wall -Wextra -Wfloat-equal -Weffc++ -Wredundant-decls -Wconversion -Wlogical-op -Wcast-qual -Wformat=2
-Werror -Wno-error=sign-compare -Wno-error=conversion -Wno-error=vla -Wno-error=maybe-uninitialized -Wno-error=float-equal -Wno-error=float-conversion
-fstack-protector-all -lssp -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_FORTIFY_SOURCE=2{noformat}
* Также через меню {{Settings \ Compiler \ Selected compiler \ Set as default}} можно активировать отдельно доступный под именем "GNU GCC Compiler 7.3.0 Release" набор опций компилятора {noformat}-std=c++17 -static -m32 -march=native -mfpmath=sse -Ofast -flto -Wl,--stack,67108864{noformat}
* Отступ в два пробела
* На сочетание Ctrl+Alt+L повешено автоформатирование кода через плагин [AStyle|http://stackoverflow.com/questions/16745108/formatting-code-in-code-blocks] с шаблоном [Google|http://astyle.sourceforge.net/astyle.html#_style=google]
* В меню Tools добавлен пункт "Run with stdin from input.txt" для запуска с [перенаправлением stdin на чтение из файла|http://stackoverflow.com/questions/13295869/code-blocks-redirecting-input-output]
* Изменён шаблон нового файла *.cpp при создании проекта или отдельно нового файла через меню {{File \ New \ File... \ C++ Source}}:
{code}
#include <bits/stdc++.h>
using namespace std;

int main() {
int s;
cin >> s;
cout << s;
}
{code}

*Чтобы использовались предзаданные настройки, IDE нужно запускать в портативном режиме через {{CodeBlocks-17.12\CbLauncher.exe}}.*
В этом случае для хранения настроек будет использоваться файл {{CodeBlocks-17.12\default.conf}} внутри приложения, общий на всех пользователей ПК.
Если же запуск приложения в классе производится из общей сетевой папки, то лучше запускать {{CodeBlocks-17.12\codeblocks.exe}}, который создаёт с нуля отдельные настройки в пользовательском профиле. Перед этим нужно будет один раз скопировать {{CodeBlocks-17.12\default.conf}} из архива в {{%APPDATA%\CodeBlocks\default.conf}}.

Для запуска отладчика требуется предварительная настройка проекта. См. об этом подробнее в иллюстрированной [инструкции|http://dl.gsu.by/images/_i4f/cpp/CB-inst.doc].
Отладчик [не работает при наличии в пути к файлу пробелов|http://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks#Path_with_spaces].
{note}

h1. [С++|https://ru.wikipedia.org/wiki/C%2B%2B]

Справка по языку: http://ru.cppreference.com/w/.

Очень познавательно [C++ 11 FAQ от Бьярна Страуструпа|http://sergeyteplyakov.blogspot.com.by/2012/05/c-11-faq.html].
В [C++14|https://ru.wikipedia.org/wiki/C%2B%2B14] и [C++17|https://ru.wikipedia.org/wiki/C%2B%2B17] были ещё улучшения.
Сегодня использовать старые стандарты не имеет смысла.

[Бесплатный курс Академии Яндекса Введение в программирование (C++)|https://stepik.org/course/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-(C++)-363/syllabus?module=1]

h3. Полезности

* [Редирект cin/cout в файлы|http://stackoverflow.com/a/38504880/603516]
* [Отключение синхронизации stdin|http://stackoverflow.com/questions/31162367/significance-of-ios-basesync-with-stdiofalse-cin-tienull]
* [Медленный|http://codeforces.com/blog/entry/43780] [endl|http://stackoverflow.com/questions/213907/c-stdendl-vs-n]
* [Инициализация массива нулями|http://stackoverflow.com/questions/1920430/c-array-initialization]

[Google C++ Code Style|https://google.github.io/styleguide/cppguide.html].

[Форум DL по С++|http://dl.gsu.by/NForum/posts/topicshow/2567.dl?postid=63941#63941]

h2. Compilers

h3. GCC for Windows

[GNU Compiler Collection|https://gcc.gnu.org/] содержит самую распространённую реализацию компилятора C++ и стандартной библиотеки.

Под Windows она доступна в сборках:
|| Сборка || Версия GCC || Коментарий ||
| [Cygwin|https://cygwin.com/] | ? | См. [Cygwin vs MinGW|http://stackoverflow.com/questions/771756/what-is-the-difference-between-cygwin-and-mingw], т.е. не очень хороший вариант. |
| [MinGW|https://sourceforge.net/projects/mingw/] | 6.3.0 | Полная поддержка C++14. Устарелая сборка, медленно обновляется и иногда содержит хронические баги |
| [MinGW-w64|https://sourceforge.net/projects/mingw-w64/] | 8.1.0 | Полная поддержка C++17. Активнее обновляется и исправляется, чем MinGW. [Готовые сборки для скачивания|https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/]. [Значение опций|http://stackoverflow.com/questions/29947302/meaning-of-options-in-mingw-w64-installer]. |
| [Nuwen|https://nuwen.net/mingw.html] | [9.2.0|https://gcc.gnu.org/gcc-9/changes.html] | C++17 по умолчанию. Собственная структура каталогов, которую [сложнее|http://forums.codeblocks.org/index.php?topic=18259.0] подключить в IDE. |

[Версии компиляторов, доступные к тестированию на DL|DL Compilers].

h3. [Clang|https://ru.wikipedia.org/wiki/Clang] / [LLVM|http://clang.llvm.org/]

Более прогрессивный компилятор, быстрее и лучше сообщения об ошибках. Но не содержит стандартных заголовков, которые нужно брать из GCC, что [усложняет|http://stackoverflow.com/questions/14419168/using-clang-with-codeblocks-on-windows-7] настройку.

h3. [Visual C++ Build Tools|http://landinghub.visualstudio.com/visual-cpp-build-tools]

Для установки нужно минимум 3 Гб свободного места.

h2. Online IDEs

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

https://coderpad.io/ - быстрые автодополнение и запуск, подсветка ошибок на лету, автосохранение, но нет консольного ввода
https://www.hackerrank.com/ - можно отлаживать свою программу в окне подходящей задачи
http://cppshell.com/
http://ideone.com/

h2. Desktop IDEs

Выбор IDE для олимпиад:
https://www.quora.com/Being-a-competitive-programmer-which-is-the-best-IDE-to-use
http://codeforces.com/blog/entry/3060
http://codeforces.com/blog/entry/356

Олимпиадникам стоит заранее познакомиться с редакторами, доступными на [IOI|http://ioi2016.ru/pages/environment?locale=ru] и [ACM ICPC|https://icpc.baylor.edu/worldfinals/programming-environment].

Для разработки:
http://stackoverflow.com/questions/89275/best-c-ide-or-editor-for-windows
https://www.quora.com/What-is-the-best-C-C-IDE
http://ru.stackoverflow.com/questions/3592/ide-%D0%B4%D0%BB%D1%8F-c-%D0%B8-c
https://habrahabr.ru/post/149773/

h3. [Code::Blocks|http://www.codeblocks.org/]

Относительно легковесный редактор по сравнению с конкурентами. Есть автодополнение. Настройка проекта не обязательна.
Интерфейс страшненький, но олимпиадники хвалят за функционал и скорость. Есть плагины.
Доступен на IOI.

[CodeBlocks HowTo|https://www.ntu.edu.sg/home/ehchua/programming/howto/CodeBlocks_HowTo.html]. [Run with redirected input/output|http://stackoverflow.com/questions/13295869/code-blocks-redirecting-input-output].

[Скачать|http://www.codeblocks.org/downloads/26#windows].
{{codeblocks-17.12mingw-setup.exe}} содержит в себе уже настроенный компилятор GCC MingGW 5.1.0, но в нём [нашлись|http://stackoverflow.com/questions/12975341/to-string-is-not-a-member-of-std-says-so-g#comment63754740_12975602] [баги|http://stackoverflow.com/a/38163628/603516].
Поэтому лучше ставить отдельно `codeblocks-17.12-setup.exe` и последнюю версию MinGW-w64, [например 8.1.0|https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/threads-win32/dwarf/i686-8.1.0-release-win32-dwarf-rt_v6-rev0.7z/download], которую потом [указать в настройках|http://stackoverflow.com/questions/26414511/how-do-i-compile-for-64bit-using-g-w-codeblocks] ([в картинках|http://www.cyberforum.ru/post7591263.html]).
Заодно рекомендуется в настройках сразу включить [-std=c++17|http://stackoverflow.com/questions/31171979/enabling-std-c14-flag-in-codeblocks].

|| Полезные действия || Hotkey ||
| Компиляция и запуск | F9 |
| Форматирование кода | Plugins -> Source code formatter ([AStyle|http://wiki.codeblocks.org/index.php?title=Source_Code_Formatter_plugin]) [*|http://stackoverflow.com/questions/26278082/is-there-any-shortcut-for-codeblocks-to-fomat-the-code] |

h3. [Codelite|http://codelite.org/]

Близкий соперник Code::Blocks. Есть поддержка [компиляции|http://codelite.org/LiteEditor/ClangCompiler] и [автодополнения|http://codelite.org/LiteEditor/ClangIntegration35] через Clang.

h3. [Dev-C++|https://sourceforge.net/projects/orwelldevcpp/]
Тоже лёгкое IDE как предыдущие, но есть негативные отзывы на codeforces.

h3. [JetBrains CLion|https://www.jetbrains.com/clion/]

Очень удобный редактор и отладчик. Но нет [общедоступной бесплатной|http://forum.ru-board.com/topic.cgi?forum=35&topic=2021&start=620] версии. Пока подсветка в редакторе не понимает C++14.
Требуется отдельная настройка проекта под каждый файл с решением.

h3. [Visual Studio Community|https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx]

Содержит реализацию языка и навороченное IDE, которое многие хвалят. Если не жалко 8 Гб места, можно попробовать.
Требуется отдельная настройка проекта под каждый файл с решением.

h3. [Eclipse CDT|http://www.eclipse.org/cdt/]
Требуется отдельная настройка проекта под каждый файл с решением.
Доступен на финалах IOI и ACM ICPC.

h3. [NetBeans|https://netbeans.org/features/cpp/]
Требуется отдельная настройка проекта под каждый файл с решением.