Pull to refresh

Comments 11

А как насчёт переиспользования манипуляторов?

Если я правильно понял, фичами из статьи можно пользоваться только в VS? В Eclipse даже с последним GCC пока ничего не получится? Я в этой области профан, так что прошу извинить, если что не так...

Можно использовать fmtlib с GCC, который умеет хотя бы C++11. Собственно эта библиотека и послужила основой std::format. fmtlib имеет некоторые отличия, но в целом очень похожа.

PS: а кто-нибудь знает причину, почему std::format до сих пор отсутствует в реализации стандартной библиотеки от GCC?

Ок. Спасибо за пояснения. Я именно стандартный GCC и имел ввиду. Но если что, буду пользоваться Вашим советом :)

ну в последнем llvm 15 libcxx научился в format вроде полностью.

В последних примерах происходит временная аллокация памяти std::string, которая потом скопируется уже в правильное место. Интересно примеры форматирования нескольких значений сразу куда надо.

Штука хорошая, но под линуксами в стандартном виде в продакшене ещё года три такое не увидишь, если не дольше. Как и другие хорошие нововведения C++20, как те же модули.

А как же перегрузка операторов? Какие плюсы и минусы format перед операторами. А то я не совсем вникаю зачем это придумали...

божечки, кто то еще работает со строчками в с++? Долго еще будет эта разножопица с char/wchar?…

wchar по-моему опыту нужен только для удобства работы с Windows API, во всех остальных местах хороши и удобны обычные char строчки с utf-8 внутри. Если WinAPI не нужно негде дёргать — забудьте про них совсем; в платформо-зависимых местах — конвертируйте из utf8 по мере необходимости в wchar

В общем если у кого код из статьи не компилируется, знайте, что с определённого времени formatter<T>::format должен быть константым (LWG 3636). И несмотря на то, что это уточнение стандарта помечено статусом C++23, актуальные версии GCC и MSVC при сборке через CMake с set(CMAKE_CXX_STANDARD 20) всё равно ругаются огромной малопонятной простынёй, если не объявить указанный метод константым.

Sign up to leave a comment.