setprecision для boost :: program_options - PullRequest
       6

setprecision для boost :: program_options

4 голосов
/ 16 февраля 2012

Есть ли способ изменить способ, которым boost :: program_options форматирует значение по умолчанию для параметров в тексте справки program_options::options_description (который можно получить с помощью cout << description)?В частности, у меня есть значения по умолчанию, которые являются числами с плавающей точкой, поэтому обычное десятичное преобразование в двоичное дает мне текст справки, который выглядит как --arg (0.100000001), что довольно уродливо.

Использование cout << setprecision(4) не работает, потому чтоprogram_options << сам использует значения по умолчанию для некоторых внутренних потоков, чтобы сначала выполнить форматирование (по крайней мере, это то, что я понял, посмотрев на исходный код), и то, что << 'ред cout, является результатомстрока (поток?).

Спасибо.

1 Ответ

5 голосов
/ 16 февраля 2012

Вызовите версию с двумя аргументами default_value.Затем вы можете указать строковую версию значения, и оно будет напечатано вместо попытки напечатать указанное значение с помощью <<.

...