макоси с гцц?
Забить на макоси)
ну очевидный вариант - не спешить впереди паровоза как я понимаю уже поздно давать
У них вместе с Xcode идёт clang. Называется только AppleClang сейчас 12я версия. Оч свежая. Единственное я только на последнем релизе сижу BigSur. У них там своя libc++. Дома кое что подписываю для себя, двадцатый стандарт есть. Разве что какие-то вещи из двадцатой библиотеки не довезли (последний раз когда проверял не было source_file & jthread). Из ограничений по памяти - нет статический сборки с рантайм, яблочники её не разрешают. clang++ --version дает вот такой выхлоп: Apple clang version 12.0.0 (clang-1200.0.32.29). В принципе вижу люди и руками собирают весь тулчейн но сам на apple такого не делал, только под linux - https://stackoverflow.com/questions/65293299/how-to-build-llvm-clang-clang-for-apple-m1
Нельзя ли собрать настоящий кланг — эпловским? Или g++ использовать
У них там точно своя libc++? Мне казалось что только компилятор свой, а библиотека общая
https://en.cppreference.com/w/cpp/20 Вот глянь в разделе библиотечной поддержки, Apple Clang
Нет. Apple в рамках проекта LLVM производит первоклассные средства разработки включая рантайм С++ - какие-то моменты в нем сделаны лучше чем в gnu по моему скромному мнению. Полный список поддерживаемых компонентов тут: https://llvm.org + можно пойти в репо. Сейчас они активно пилят еще много чего (например libc).
тут скорее был вопрос не "GCC vs LLVM", а "LLVM vs Apple LLVM"
Ну да какие-то отличия есть. Нужно аккуратно проверять. Они довольно часто релизят. Скоро 13й релиз делать будут. Так что фичи появляются быстро. Подробнее не копал почему часть функционала отличается. Насчет runtime есть путаница потому что clang формально поддерживает разные runtime C++. Под linux я спокойно собираю clang как с libstdc++ которая gnu. Так и libc++ которая от llvm проекта.
Clang вообще всеядный. Компилятор, что объединит всех
на гитхаб ci пока нет биг сура, а на 10.15 нет <ranges>, ошибки начались
Проверил список заголовков в последнем clang для bigsur. Нет format, concept, source_location, ranges. Причем в linux концепты есть. format нет нигде (Только gcc experimental вижу зачатки форматтера). ranges тоже вижу только на linux gcc 10
поэтому и возник вопрос
Я короче себе 20 стандарт намутил скачав официальный кланг 12 через brew, потом просто перекомпилил либс++ с мастера того же репо, и заменил в пакете, профит
а корутины в шланге уже полностью работают?
Не проверял, мне нужны были концепты только. ща гляну что есть в хедере
нет, partial support
Я тут на днях здорово обломался, попробовав пересобрать Clang-Cl проект с корутинами)) Раньше его только MSVC собирали и не парились...
Спс за фидбек. Здорово, что получилось.
Только я кстати не научил его линковаться относительно своей библиотеки по дефолту. Он пытался зацепить либс++ от Apple Clang и падал на линковке. В итоге пришлось прям в СМейк прописать путь до кастомной либс++ и линкануть ее статически.
Тоже вариант, можно ещё прочитать про опции линкера, ему можно сказать не тащи cppruntime и явно дать свой, тоже с дефолтными инклюдами. Вот на такие флажки линкера посмотрите: nostdinc++ nodefaultlibs может покрасивее сделать получиться
все пробовал и это в том числе
Обсуждают сегодня