Иногда нужно быстро проверить работоспособность какой-то идеи или алгоритма. Хорошо, когда у вас Linux и какая-то система из семейства Unix с установленным компилятором (имхо, в 90% случаев это будет правдой), вам просто нужно открыть консоль вызвать vim/emacs/joe/mcedit/etc набросать программку и вызвать компилятор. Но иногда вы в гостях/командировке/интернет-кафе, в общем тогда, когда компилятора нет под рукой, но есть доступ в интернет. Тут помогут онлайн-компиляторы.
Отправной точкой можно взять ресурсы:
Из перечисленных там, мне понравились нижеперечисленные.
Лидеры
Лидеры моего внутреннего рейтинга. На основе развития за все годы существования этой заметки.
- 
https://wandbox.org/
Мой фаворитНе совсем. Работает как-то медленно. Чаще https://cpp.sh запускаю (см ниже)- Плюсы:
- Самые свежие версии компиляторов (см. ниже) и, соответственно, самые свежие версии стандартов.
 - Gcc/Clang/Zapcc на выбор и много вариантов версий
 - Удобный выбор версий стандарта (C++)
 - Доступен Boost разных версий и дополнительные библиотеки типа Sprout и MessagePack
 - Можно задать дополнительные опции компилятору (“Compiler options”)
 - Уже можно задать опции командной строки для приложения (“Runtime options”)
 - Можно передать программе STDIN
 - Можно создавать дополнительные текстовые файлы (например для программ, читающих из файлов). При этом, можно хитро извернуться и использовать WandBox как IDE: эти файлы могут быть исходниками, проосто печислите их в параметрах компилятора ;-)
 - Несколько языков
 - Можно шарить код
 - Автоматически сохраняет код между запусками браузера
 - Быстрый запуск по Ctrl+Enter
 
 - Минусы
- Нет студийного компилятора
 - На момент “конец октября 2024”: интерфейс стал очень тормозным
 
 
 - 
http://coliru.stacked-crooked.com
- Плюсы:
- 
C++20, можно поиграться с параметром
-std=XXX - 
Последняя версия компилятора
 - 
Можно выбрать компилятор: см минусы
- А выбрать только так, вместо команды билда указать: 
ls /usr/local/bin/*g++* /usr/bin/*g++* - Итого, на август 2023:
g++- актуальная версия (13)g++-4.7g++-4.8g++-4.9g++-5.1g++-5.2g++-5clang++- 5 версияclang++-5
 
 - А выбрать только так, вместо команды билда указать: 
 - 
Можно задать параметры сборки
 - 
Автоматически сохраняет код между запусками браузера
 - 
Можно использовать для шаринга кода (внизу кропка Share)
 - 
Можно передать параметры программе через аргументы командной строки
 - 
Можно передать программе STDIN используя трюк Shell:
g++ -std=c++20 -O2 -Wall -pedantic -pthread main.cpp && ./a.out << EOF Hey! I am stdin! EOF - 
Много шоркатов
 
 - 
 - Минусы:
- Небольшой выбор компиляторов и версий и хакерский путь поиска оных
 - У меня пару раз не работал.
 - Язык только (?) C/C++
 
 
 - Плюсы:
 - 
http://gcc.godbolt.org/ - 
тут укажу один минус сразу: он только компилирует, но не выполняет код иотображает ассемблерный листинг, что удобно для анализа всяких оптимизаций.- Плюсы:
- Много разных компиляторов и их версий: gcc (4.4-4.8), arm-gcc (4.5-4.6), avr-gcc (4.5), mps430-gcc (4.5), clang (3.0), icc (13.0.1)
 - Показывает ассемблерный выход
 - Можно задать параметры компиляции
 - Можно шарить код
 - Мегатулза для анализа сгенерированного кода
 - На момент “август 2023” уже умеет выполнять код (не для всех компиляторов), для этого нужно нажать в окне ассемблерного выхлопа иконку с “+” и выбрать пункт “Executor From This”. Далее можно задать как параметры коммандной строки, так и данные на STDIN.
 
 - Минусы:
- Для меня - больше нет :)
 
 - Субъективно: выполнение кода появилось, но всё же удобнее использовать его как инструмент анализа и оптимизации.
 
 - Плюсы:
 - 
https://cppinsights.io/ - ещё один сервис уровня godbolt, но! Он показывает во что могут разворачиваться синтаксические конструкции, типа лябдб и, к примеру, 
идиомы “overload”
- Плюсы:
- Все актуальные стандарты
 - Помогает разбираться в тонкостях и нюансах
 
 - Минусы:
- Не вижу, но смотреть особенности
 
 - Особенности:
- Это не компилятор в прямом смысле слова. Он не запускает программу, не читает файлы, аргументы и т.п. Он нужен что бы развернуть синтаксические конструкции в простые, примитивные конструкции языка, более доступные для понимания.
 
 
 - Плюсы:
 
Прочие
Которыми раньше пользовался, но которые по каким-то причинам ушли из моих фаворитов.
- 
http://cpp.sh/
- Особенности (ни плюс, ни минус, а данность):
- Код собирается на сервере через emscripten в WebAssemply code, который уже выполняется непосредственно в браузере
 
 - Плюсы:
- Короткое и лаконичное имя :-)
 - C++98, C++11, C++14, C++17, C++20, C++23 - по выбору (GCC 4.9.2)
 - Различные уровни оптимизации: O0, O1, O2, O3
 - Поддержка предупреждений: Wall, Wextra, Wpedantic
 Boost 1.55 (больше никто не предоставляет)- Можно шарить код
 Ввод через стандартный ввод: интерактивный (этого нет ни у кого больше) и текстсм минусы- Сразу большое окно редактора
 
 - Минусы
- Только C++
 - Нет работы с файлами
 - Не понимает завершения процесса по сигналу
 - Больше нет возможности передать параметры коммандной строки
 - Больше нет возможности передать STDIN
 
 
 - Особенности (ни плюс, ни минус, а данность):
 - 
http://ideone.com
- Август 2023: не открывается
 - Плюсы:
- C++14 стандарт (компилятор gcc 8.2 и clang 8.0)
 - Можно шарить код + оставить аннотацию к нему (нажать “More options”)
 - Можно задать данные которые отошлются на STDIN программы
 
 - Минусы:
- Нельзя задать параметры сборки
 - Нельзя передать параметры командной строки
 - Других стандартов C++ нет (С++98/03, C++11, C++17, C++20)