Использование std::format для форматирования текстов char8_t, char16_t и char32_t в C++ 20C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Использование std::format для форматирования текстов char8_t, char16_t и char32_t в C++ 20

Сообщение Anonymous »


Я работал над кодом кросс-платформенного движка, и для хранения и передачи текстовых данных unsigned short был своего рода лучшим типом, поскольку в Windows он такой же, как wchar_t, а на Mac - как unichar, на котором ретранслируется NSString ( wchar_t на Mac по какой-то причине 32-битный по размеру). С новым C++ 20 и появлением char16_t я заменил на него свой общий беззнаковый короткий тип и начал максимально оптимизировать код, и всякий раз, когда было возможно, использовать один и тот же код для обеих ОС (Mac и Win). Новый char16_t работал отлично, пока я не перешел к форматированию и не увидел, что std::format еще не поддерживает его.

Пропробовал множество решений, в итоге использовал библиотеку FMT, поддерживающую форматирование char16_t, только чтобы увидеть, что ее код очень похож на код std::format (оба сделал один и тот же человек), поэтому я задался вопросом, можно ли сделать std ::format для работы со всеми типами символов.

После некоторой работы и предоставления отсутствующего кода (шаблоны форматирования для других типов символов) я получил только известную ошибку >> C2491: 'std::numpunct::id': определение статического элемента данных dllimport не разрешено <
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»