Size: a a a

2020 June 24

ПК

Побитый Кирпич... in pro.cxx
vehlwn
> character type used by the native encoding of the filesystem: char on POSIX, wchar_t on Windows

Зачем они сделали value_type разным на разных платформах? Чтобы не реализовывать конвертацию узких строк в нативные для венды строки?
А какой должен быть value_type тогда?
источник

ПК

Побитый Кирпич... in pro.cxx
Alex
Да, пока дописал, уже понял, что корявая кодировка самого исходного файла побьёт данные так или иначе.
Нет, wchar точно так же как и char это не фиксированный размер символа, в UTF-16 могут быть два wchar один символ
источник

v

vehlwn in pro.cxx
Побитый Кирпич
А какой должен быть value_type тогда?
чар и  пусть все функции файловой системы принимают узкие чар* утф8 строки и внутри конвертируют в нативные строки на венде.
источник

ПК

Побитый Кирпич... in pro.cxx
vehlwn
чар и  пусть все функции файловой системы принимают узкие чар* утф8 строки и внутри конвертируют в нативные строки на венде.
Почему не наоборот?
источник

ПК

Побитый Кирпич... in pro.cxx
То что utf-8 это линуксовая кодировка это точно такая же завязка на реализацию одной ОС как UTF-16 на винде
источник

EP

Egor Pugin in pro.cxx
vehlwn
чар и  пусть все функции файловой системы принимают узкие чар* утф8 строки и внутри конвертируют в нативные строки на венде.
а в стандарте value_type строго определён или там просто требуется иметь такой тайпдеф?
источник

EP

Egor Pugin in pro.cxx
если не определён, то реализации вольны выбирать, и мс выбрали wchar_t
источник

IL

Ignat Loskutov in pro.cxx
Побитый Кирпич
То что utf-8 это линуксовая кодировка это точно такая же завязка на реализацию одной ОС как UTF-16 на винде
Linux и UTF-8 не связаны вообще никак казалось бы
источник

ПК

Побитый Кирпич... in pro.cxx
Egor Pugin
если не определён, то реализации вольны выбирать, и мс выбрали wchar_t
строго определен как нативный для фс
источник

EP

Egor Pugin in pro.cxx
Побитый Кирпич
строго определен как нативный для фс
тогда всё в порядке вроде
источник

v

vehlwn in pro.cxx
Побитый Кирпич
То что utf-8 это линуксовая кодировка это точно такая же завязка на реализацию одной ОС как UTF-16 на винде
Почему стд::стринг в росо и QString принимают утф8?
источник

IL

Ignat Loskutov in pro.cxx
На ЛОРе вон до сих пор встречаются челы, у которых системная кодировка KOI8
источник

ПК

Побитый Кирпич... in pro.cxx
vehlwn
Почему стд::стринг в росо и QString принимают утф8?
Вовремя одумались. std считает, что char* это ASCI именно из-за древности своей
источник

NP

Nikita Provotorov in pro.cxx
Побитый Кирпич
Почему не наоборот?
потому что utf8 уже стандарт дефакто в интернете
источник

ПК

Побитый Кирпич... in pro.cxx
vehlwn
чар и  пусть все функции файловой системы принимают узкие чар* утф8 строки и внутри конвертируют в нативные строки на венде.
Более того, для windows only кода это может быть абсолютно ненужной фичей, но при этом имеющей оверхед
источник

ПК

Побитый Кирпич... in pro.cxx
Nikita Provotorov
потому что utf8 уже стандарт дефакто в интернете
А UTF-16 стандарт на винде
источник

NP

Nikita Provotorov in pro.cxx
Побитый Кирпич
А UTF-16 стандарт на винде
интернет >> винда
источник

ПК

Побитый Кирпич... in pro.cxx
и даже больше - в джаве вон тоже
источник

ПК

Побитый Кирпич... in pro.cxx
А значит и на Андроиде видимо
источник

ПК

Побитый Кирпич... in pro.cxx
Nikita Provotorov
интернет >> винда
Когда С++ начнёт использоваться для разработки в интернете больше чем для винды, тогда и поговорим :)
источник