Я потерялся в файлах заголовков для boost_tree boost и, учитывая отсутствие документации по нижним уровням, я решил спросить, какой простой способ перегрузить транслятор потока, чтобы изменить, как значения Boolean анализируются.
Проблема заключается в том, что на входной стороне дерева свойств есть пользователи, и они могут изменять файлы конфигурации. Булевское значение может быть указано несколькими способами, например:
dosomething.enabled=true
dosomething.enabled=trUE
dosomething.enabled=yes
dosomething.enabled=ON
dosomething.enabled=1
По умолчанию используется проверка на 0 или 1, а затем использование
std::ios_base::boolalpha
чтобы заставить поток попытаться проанализировать значение соответствующим образом для текущей локали... что может быть безумным, если мы попытаемся отправить файл конфигурации международным клиентам.
Итак, что самый простой способ переопределить это поведение или только bool? Не только проще всего реализовать, но и проще всего использовать, так что пользователям моего класса, которые производятся от iptree, не нужно делать что-то особенное для булевых значений.
Спасибо!