Evgenii
делов то
Berkus
Evgenii
щас бы называть другой стиль кода поганым🤦♂
Berkus
илья, 10 лет назад я в коде не делал НИ ЕДИНОЙ ОПЕЧАТКИ (примерно за 10 лет как раз).
А потом начал, внезапно.
Berkus
так что юношеский максимализм пройдет
Evgenii
это точно, что ты выдумал какую-то проблему
Evgenii
kitsu
на слона денег нет, сорь
Berkus
когда есть нужные тулы и умеешь ими пользоваться - никаких проблем. изобретатели этого стиля по-моему сидели всю жизнь в nano и компилировали с -Wnone
Nikita
В рантайме обнаружишь. Придёт баг от саппорта, когда у юзера баганет. А у него самолёт разбился из-за твоей глупой ошибки
Berkus
Vitaliy
Только если он не в ракете) Тоже считаю, что лучше ошибки в компайлтайме, чем в рантайме.
Vitaliy
Кстати, тут тему конана поднимали.
Vitaliy
Объясните, пожалуйста, я правильно понимаю, что он подрубается в cmake и во время генерации файлов просто тянет нужные библиотеки из репозитория ?
Igor
если совсем утрировать, то да
попутно ещё библиотеки кэшируются у тебя на диске для дальнейшего использования, а подрубаться он может не только в смак
Vitaliy
А conan сейчас best practice считается ?
Vitaliy
По подключению либ
Nikita
Vitaliy
А как там обстоят дела с большими библиотеками ? Например, могу ли я вытянуть часть boost или opencv ?
Vitaliy
Или только либу целиком ?
Igor
Vitaliy
Значит от репозитория зависит ?
Igor
да
репозитории могут быть как публично доступными, так и огороженными в рамках локальной сети компании, например
Nikita
Что значит in development ?
Сыроват и активно развивается. Если есть своя монструозная легасятина — то ещё рано ещё на conan менять
Berkus
Berkus
он качает и ставит депенденсы и создает конфиг файл для твоей билдсистемы, cmake одна из поддерживаемых опций
Berkus
Dr. Friedrich
Alexander "SonnySlave"
kitsu
https://blog.jupyter.org/interactive-workflows-for-c-with-jupyter-fe9b54227d92
PRoSToC0der
Есть ли какой-нибудь стандартный способ вывода std::u32string через std::cout/std::wcout? По идее можно конвертнуть std::u32string в multi-byte string с помощью std::c32rtomb, но "примет" ли такую строку std::cout? Различает ли как-нибудь стандарт single-byte string и multi-byte string? Можно ещё попробовать конвертнуть multi-byte string в wide string (с помощью std::wcrtomb) и вывести через std::wcout, но тут также возникают два вопроса может ли вместить multi-byte string все символы юникода и может ли вместить wide string все символы юникода?
Berkus
u32 это по твоему какая кодировка?
Berkus
а какая в wcout?
Berkus
стандарту похую
Berkus
конвертируй в нужную кодировку и в ней выводи
Dr. Friedrich
http://en.cppreference.com/w/cpp/string/multibyte/c32rtomb
> The multibyte encoding used by this function is specified by the currently active C locale.
Olesya
Vlad
Vlad
:)
Olesya
слушай, ну каждому своё. мне им действительно проще пользоваться, чем заморачиваться с локалями и прочим. тем более, что под мою задачу это больше подходило.
Anton
Мне в одном проекте надо было преобразовывать из cp866 в utf8 самое простое и быстрое (в плане процессорного времени) оказалось сделать свою функцию с длиннее Ким switch/case )
Anton
Да и не люблю я эти wstring...
PRoSToC0der
Просто в c32rtomb ничего не написано про ошибки в случае, если c32 не представим в multibyte кодировке, значит по идее любой юникод символ должен быть представим в multibyte кодировке
Vlad
Vlad
у Яндекса в опенсорсе есть функции конвертирования туда-сюда кстати
Vlad
https://github.com/catboost/catboost/blob/master/util/charset/wide.h#L346
Olesya
Olesya
в масштабах вселенной вообще любая проблема не важна)
Olesya
но мне вот очень надо было) только наоборот, заглавные в строчные
Vlad
Berkus
Alexander "SonnySlave"
https://habrahabr.ru/company/otus/blog/343566/.it
Berkus
если тебе надо какие-то преобразования с символами делать - тогда да, без ICU мало куда можно податься
Berkus
PRoSToC0der
Berkus
это UTF-32
Berkus
но я тебе про mb сторону конверсии
Berkus
а ты мне почему-то про c32
PRoSToC0der
Ограничение в этом заключается?
At most MB_CUR_MAX bytes can be written by this function.
Berkus
> Converts a UTF-32 character to its narrow multibyte representation.
narrow
Berkus
дальше все зависит от кодировки, как я сказал в UCS2 влезает не весь юникод
Alexander "SonnySlave"
статья полезна. не полезна только своими числами, не более
Alexander "SonnySlave"
и автор закладывал совершенно иной смысл, я так думаю
PRoSToC0der
if c32 is not a valid 32-bit character
valid 32-bit character это валидный символ с точки зрения UTF-32 или с точки зрения multibyte кодировки?
Berkus
Alexander "SonnySlave"
ну и не видь дальше, мне то что
Alexander "SonnySlave"
но зачем в этой статье С++ вообще?)
Alexander "SonnySlave"
тут как бы он и не нужен
PRoSToC0der
это хороший вопрос, ничего по этому поводу не написано
http://en.cppreference.com/w/c/string/multibyte/c32rtomb
В C документации несколько другое описание
Converts a single code point from its variable-length 32-bit wide character representation (but typically, UTF-32) to its narrow multibyte character representation.
If the macro __STDC_UTF_32__ is defined, the 32-bit encoding used by this function is UTF-32; otherwise, it is implementation-defined. In any case, the multibyte character encoding used by this function is specified by the currently active C locale.
Причём в C++ доках есть такой же макрос
http://en.cppreference.com/w/cpp/string/multibyte
__STDC_UTF_32__
indicates that UTF-32 encoding is used by mbrtoc32 and c32rtomb
(macro constant)
PRoSToC0der
И здесь
http://www.cplusplus.com/reference/cuchar/c32rtomb/
If the __STD_UTF_32__ is defined, c32 shall follow UTF-32 encoding.
Berkus
ну вот
Alexander "SonnySlave"
ну так они тормозят, если брошены)