Currently, the .choices(...) method require passing the list of choices as individual arguments. This works well when the list of choices is known statically, but if the list is dynamic (ex. computed into a std::vector<T>), setting the choices becomes unnecessarily verbose (you'd have to loop over the values and call .add_choice() for each one).
Unfortunately, the variadic .choices(...) interface prevents overloading, so the suggestion is to add a new method along the lines of:
template<class T>
Argument& choices_list(const T& list) {
for (const auto& v : list) {
add_choice(v);
}
return *this;
}
Currently, the
.choices(...)
method require passing the list of choices as individual arguments. This works well when the list of choices is known statically, but if the list is dynamic (ex. computed into astd::vector<T>
), setting the choices becomes unnecessarily verbose (you'd have to loop over the values and call.add_choice()
for each one).Unfortunately, the variadic
.choices(...)
interface prevents overloading, so the suggestion is to add a new method along the lines of: