2007-12-04

const char* filename

На днях Александр Авраменко постил на рсдн список новых библиотек, которые войдут в свежую версию буста 1.35. Прочитав его, был сильно удивлен, т.к. не ожидал, что бустоводы (в большинстве своем) когда-нибудь повернутся лицом к ... хм... всяким реальным проблемам: планировались библиотеки для работы с изображениями, сетью, межпроцессного взаимодействия. Меня помимо вышеназванных, привлекла property_tree library.
property_tree - рекурсивное дерево с поддержкой загрузки/сохранения в форматах XML, INI, JSON и в реестр Windows.

Именно такая штука сейчас бы очень пригодилась для хранения опций в Spy - особенно порадовала возможность сохранять дерево в JSON.
Сегодня решил собрать пример. Первое, что бросилось в глаза
void read_json(const std::string &filename, ...)
void write_json(const std::string &filename, ...)

Тоска зеленая, 256 символов на все прихоти планеты - фарева.

Автор, очевидно, в курсе проблемы, т.к. в том же файле предусмотрены интерфейсы:
void read_json(std::basic_istream &stream, ...)
void write_json(std::basic_ostream &stream, ...)

Вместе с (очевидно MSVC-specific) конструктором basic_ofstream(const wchar_t *_Filename, ... ) становится возможным малой кровью обойти проблему.

Пост ни в коем случае не пинок автора property_tree, а скорее усталость от мелких проблем, которые почему-то не получается решить на уровне стандарта уже много лет.

Комментариев нет: