Иногда нужно быстро проверить работоспособность какой-то идеи или алгоритма. Хорошо, когда у вас Linux и какая-то система из семейства Unix с установленным компилятором (имхо, в 90% случаев это будет правдой), вам просто нужно открыть консоль вызвать vim/emacs/joe/mcedit/etc набросать программку и вызвать компилятор. Но иногда вы в гостях/командировке/интернет-кафе, в общем тогда, когда компилятора нет под рукой, но есть доступ в интернет. Тут помогут онлайн-компиляторы.
Отправной точкой можно взять ресурсы:
Из перечисленных там, мне понравились нижеперечисленные.
Лидеры
Лидеры моего внутреннего рейтинга. На основе развития за все годы существования этой заметки.
- https://wandbox.org/
- Мой фаворит
- Плюсы:
- Самые свежие версии компиляторов (см. ниже) и, соответственно, самые свежие версии стандартов.
- Gcc/Clang/Zapcc на выбор и много вариантов версий
- Удобный выбор версий стандарта (C++)
- Доступен Boost разных версий и дополнительные библиотеки типа Sprout и MessagePack
- Можно задать дополнительные опции компилятору (“Compiler options”)
- Уже можно задать опции командной строки для приложения (“Runtime options”)
- Можно передать программе STDIN
- Можно создавать дополнительные текстовые файлы (например для программ, читающих из файлов). При этом, можно хитро извернуться и использовать WandBox как IDE: эти файлы могут быть исходниками, проосто печислите их в параметрах компилятора ;-)
- Несколько языков
- Можно шарить код
- Автоматически сохраняет код между запусками браузера
- Быстрый запуск по Ctrl+Enter
- Минусы
- Нет студийного компилятора
- http://coliru.stacked-crooked.com
- Плюсы:
-
C++17, можно указать
-std=c++2a
для pre-C++20 -
Последняя версия компилятора
-
Можно выбрать компилятор (по крайней мере gcc 4.6 там есть)
-
Можно задать параметры сборки
-
Автоматически сохраняет код между запусками браузера
-
Можно использовать для шаринга кода (внизу кропка Share)
-
Можно передать параметры программе через аргументы командной строки
-
Можно передать программе STDIN используя трюк Shell:
g++ -std=c++2a -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)
- Показывает ассемблерный выход
- Можно задать параметры компиляции
- Можно шарить код
- Мегатулза для анализа сгенерированного кода
- Минусы:
- Собственно указан выше, остальные рассматривать даже не приходится
- Плюсы:
Прочие
Которыми раньше пользовался, но которые по каким-то причинам ушли из моих фаворитов.
- http://cpp.sh/
- Плюсы:
- Короткое и лаконичное имя :-)
- C++98, C++11, C++14 - по выбору (GCC 4.9.2)
- Различные уровни оптимизации: O0, O1, O2, O3
- Поддержка предупреждений: Wall, Wextra, Wpedantic
- Boost 1.55 (больше никто не предоставляет)
- Можно шарить код
- Ввод через стандартный ввод: интерактивный (этого нет ни у кого больше) и текст
- Сразу большое окно редактора
- Минусы
- Только C++
- Нет работы с файлами
- Не понимает завершения процесса по сигналу
- Плюсы:
- http://ideone.com
- Плюсы:
- C++14 стандарт (компилятор gcc 8.2 и clang 8.0)
- Можно шарить код + оставить аннотацию к нему (нажать “More options”)
- Можно задать данные которые отошлются на STDIN программы
- Минусы:
- Нельзя задать параметры сборки
- Нельзя передать параметры командной строки
- Других стандартов C++ нет (С++98/03, C++11, C++17, C++20)
- Плюсы: