> скажу более, для людей которые равно не знаю ни про std::cout ни про printf, именно printf имеет куда более нечитаемый вид
Я с вами не согласен. Читабельность printf выше читабельности std::cout.
это Ваше право соглашаться или нет, но у меня достаточно большая статистика на студентах :) хотя, надо сказать, что тем из них кто с мозгом, не сложно ни то ни другое
Человек с мозгом не будет конструячить говно навроде << blabla << std::setwidthheightfillmodifier(99) << ololo << std::setanothermodifier(11) << someClass << std::endl();
Всю эту погань в [говно]код обычно высирают ущербы с диагнозом «С++ головного мозга».
Я пользуюсь cout во всю. Просто немного не так как обычно.
#include <glibmm.h>
using namespace Glib;
...
int main(){
ustring s = ustring::compose(format_string, i, j, k);
std::cout << s << std::endl;
return 0;
}
Там разделилили ustring::compose и ustring::format. Первая для параметризации
ustring::compose("%1%% done", percentage);
Вторая для форматирования
ustring text = ustring::format(std::fixed, std::setprecision(2), value);
Таким образом строчки для локализации не содержат форматирования, только placeholders. Это удобно и годится для 99% случаев. А там где не годится уже можно написать уже любой другой код.
кстати еще кроме читабельности я не затронул вопрос интернационализации, давай, расскажи как ты будешь переводить свои закорючки, а я посмеюсь.
а что не так, std::wcout уже «зобанили»?
и таки да, с кроссплатформностью тут траблы есть, феерические программисты от Microsoft сделали wchar_t 2-байтным, в то время как под *nix'ами он 4-байтный, только тут потоки не при чём
тем не менее, если говорить про интернализацию, то если мне будет нужно действительно толстое и максимально кроссплатформенное решение я уж скорее буду использовать ICU, нежели тащить кучу мне не нужных вещей из Qt
и, кагбэ, в этом вопросе со мной согласны вот эти парни
> и таки да, с кроссплатформностью тут траблы есть, феерические программисты от Microsoft сделали wchar_t 2-байтным, в то время как под *nix'ами он 4-байтный, только тут потоки не при чём
> я уж скорее буду использовать ICU, нежели тащить кучу мне не нужных вещей из Qt
ICU тоже немаленькая, я пользуюсь UTF8-CPP - четыре небольших .h файла, и зная, что в win wchar_t это UTF16, а в ...nix - UTF32, можно быстро и удобно перегонять строки
> и таки да, с кроссплатформностью тут траблы есть, феерические программисты от Microsoft сделали wchar_t 2-байтным, в то время как под *nix'ами он 4-байтный, только тут потоки не при чём
Glib::ustring
так да, но не всегда его удобно тянуть за собой :)
PS а за 2 байта (читай убийство кроссплатформенности) wchar_t я бы морду кое кому набил бэ (в том числе и писателям стандарта), притом циничная тупость в том что для японского языка используются 3-байтные кодировки
UTF-8 (от англ. Unicode Transformation Format — формат преобразования Юникода) — в настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста. Нашла широкое применение в операционных системах и веб-пространстве.
Текст, состоящий только из символов Юникода с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. И наоборот, в тексте UTF-8 любой байт со значением меньше 128 изображает символ ASCII с тем же кодом. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байт (реально только до 4 байт, поскольку использование кодов больше 221 не планируется), в которых первый байт всегда имеет вид 11xxxxxx, а остальные — 10xxxxxx.
ты кретин, или долбоеб? спросили про принципиальную возможность - я ответил как можно, и написал сразу, что это бред, хотя такие долбоебы как ты видно читать два сообщения за раз не умеют
дело не в этом, а в том что когда ты пишешь либу, которая весит 100 Кб (это, например, размер szlib), то прилагать к ней до кучи довесок всего-то в 3 Мб как минимум несерьёзно
если совсем жмот или пишешь хеллоуворлд, слинкуй статически, все не нужное будет выброшено линкером