ответ daminetreg работает, но он может быть немного многословным, когда используется для большого количества записей опций. Я просто взломал перегрузку для шаблона value<T>( T* v )
, чтобы создать мои value_sematic
s с дополнительным value_name
: используя
template<class T>
typed_value<T>*
value(T* v, const char * value_typename)
{
typed_value<T>* r = new typed_value<T>(v);
r->value_name( value_typename );
return r;
}
Вы можете создать и добавить новый параметр program_option так:
int width;
desc.add_options()
("width", boost::program_options::value<int>( &width, "NUM"),
"Give width");
(Примечание: это не относится ко всем другим шаблонам конструирования, особенно к конструктору value()
по умолчанию, который ОП хочет использовать)