Комментарии 15
Только что, считай случайно, прикоснулся к С++. Оказывается, ни g++ ни clang+ не поддерживают std::format. Это как вообще? А так - язык отдельно, компиляторы отдельно, библиотеки отдельно, все сидят по болотам и берут пример с куликов.
В Rust, на мой личный вкус, очень много закономерно неправильных, ибо преследующих ложные цели, решений, но только того, что rustup и cargo существуют в единственном экземпляре, на тот же вкус достаточно чтобы оправдать найденное в Сети мнение
На Rust пишут для того чтобы не писать на С++.
потому что не враги самим себе.
Только что, считай случайно, прикоснулся к С++. Оказывается, ни g++ ни clang+ не поддерживают std::format. Это как вообще?
Ну как же не поддерживают-то? Какие-то более старые версии, может, и не поддерживают, что неудивительно: развитие - это постепенный процесс, все сразу мгновенно ниоткуда не появляется.
стаая версия. Или не вставил стандарт. Мжно восползоваться реализацией {fmt}
Или не вставил стандарт.
Конечно ничего не вставлял, я же прикоснулся, а std::stringstream есть. Но что пишет clang по этому поводу?
-std=<value> Language standard to compile for
И что прикажете писать, списка вариантов то нет... И самое главное - КАКОГО ЧЁРТА ТУТ ЕСТЬ ВАРИАНТЫ КРОМЕ СУПЕР ЗАПАСНЫХ НА СЛУЧАЙ НЕ ПОСЛЕДНЕГО СТАНДАРТА, ВЫБЕСИЛО УЖЕ.
И g++ не лкчше
-std=<standard> Assume that the input sources are for <standard>.
Писука хотя бы самосогласована, так что лучше, но совсем чуть-чуть.
Но я не столько об этом, сколько о попытках отрицать очевидное но неприятное, которые в итоге защищаемому объекту медвежья услуга. Это особо опасно именно сейчас, но это моё личное мнение.
И немножко про то что именно этим путём приходим, например, к тому, что копипаста на Хабр даёт не вполне то что в цитатах выше, а
-std= Assume that the input sources are for .
Это международный стандарт, поэтому и есть варианты. Требование стандарта является необходимость соответствовать документации на стандарт.
Ни один из компиляторов сейчас не поддерживает 20-й и 23-й стандарт полностью. Поэтому оно не по умолчанию. А на маке "шланг" вообще еще в 98м году живет, потому что это их корпоративный стандарт.
стандарты идут в формате с++XX и gnu++XX для Си++. Список поддерживаемых указан в документе в справке на эту опцию в случае g++. А спрашивать надо g++, не gcc, gcc - это точка входа разных компиляторов и других средств сборки.
Библиотека {fmt} является канонической реализацией std::format, ей и отдельно можно пользоваться.
Ни один из компиляторов сейчас не поддерживает 20-й и 23-й стандарт полностью. Поэтому оно не по умолчанию
Справка gcc полагает иначе - потому, что поддержка всё ещё экспериментальная.
В остальном то, что Вы пишете, только подтверждает то, что я написал, спасибо.
fmt и std::format всё-таки имеют отличия.
Но я не столько об этом, сколько о попытках отрицать очевидное но неприятное, которые в итоге защищаемому объекту медвежья услуга. Это особо опасно именно сейчас, но это моё личное мнение.
Опасно критиковать то, в чем совершенно не разбираешься, и не именно сейчас, а всегда. Впрочем, опасно это главным образом для самого "критикана".
Было бы интересно увидеть у соискателя код, реализующий что-нибудь многопоточное, с конкуренцией за ресурсы и обработкой данных из разных источников
<sarcasm> То есть пишущего на Go?
В ближайшие годы от С++ точно не откажутся.
Что-то мне так чувствуется, что “ближайшие годы” — это лет так 15-20 минимум. Больше того, я практически уверен, что в эти “ближайшие годы” и C никуда не умрёт.
С++ вам не нянька! Делайте, что хотите, но виноваты будете сами