Есть ли обновления поддержки локализации в C ++ 0x?

Чем больше я работаю с фасетами языкового стандарта C ++, тем больше я понимаю - они ломаются.

std::time_get - не симметрично сstd::time_put (как в C strftime / strptime) и не позволяет легко анализировать времена с отметками AM / PM.Iобнаруженный В последнее время это простое форматирование чисел может привести к недопустимому UTF-8 в определенных регионах (например,ru_RU.UTF-8).std::ctype Это очень упрощенно, если предположить, что верхний / нижний значения могут быть выполнены для каждого символа (преобразование регистра может изменить количество символов, и это зависит от контекста).std::collate - не поддерживает силу сопоставления (чувствительно к регистру или нечувствительно).Невозможно указать часовой пояс, отличный от глобального часового пояса при форматировании времени.

И многое другое...

Кто-нибудь знает, ожидаются ли какие-либо изменения в стандартных аспектах в C ++ 0x?Есть ли способ донести важность таких изменений?

Благодарю.

РЕДАКТИРОВАТЬ: Разъяснения в случае, если ссылка не доступна:

std::numpunct определяет разделитель тысяч как символ Так что, когда разделитель в U + 2002 - другой вид пространства, он можетне может быть воспроизведено как один символ в UTF-8, но как последовательность из нескольких байтов.

В C APIstruct lconv определяет разделитель тысяч как строку и не страдает от этой проблемы. Таким образом, когда вы пытаетесь отформатировать числа с разделителями вне ASCII с языком UTF-8, создается недопустимый UTF-8.

Чтобы воспроизвести эту ошибку, напишите 1234 в std: ostream с imbuedru_RU.UTF-8 место действия

EDIT2: Я должен признать, что API локализации POSIX C работает намного более плавно:

Существует обратное к strftime - strptime (strftime делает то же самое, что и)std::time_put::putНет проблем с форматированием чисел из-за пункта, который я упомянул выше.

Однако это все еще для того, чтобы быть совершенным.

EDIT3: Согласно последним заметкам о C ++ 0x, я вижу, чтоstd::time_get::get -- похожий наstrptime и противоположность.std::time_put::put

Ответы на вопрос(2)

Ваш ответ на вопрос