
Neal D. Becker wrote:
Actually, just: ("angle", po::value(&angle))
Yea, you right :-)
Now I'm trying to figure out how to handle an enum. I can't really find a good solution so far.
Well, you can specialize validator for the enum type and then use a map from enumerator name to value. Let me try to code it: map<string, my_enum> my_enum_values; bool demand_my_enum_values() { my_enum_values["first"] = first; ..... return true; } template<> void validator<my_enum>::operator()(any& v, const vector<string>& xs) { // Initialize table of the first use. static bool b = demand_my_enum_values(); check_first_occurence(v); string s(get_single_string(xs)); if (my_enum_values.count(s) == 0) throw ....; else v = any<my_enum>(my_enum_values); } Uhm... does not look overly nice. If we could steal Boost.Python syntax: enum_<color>("color") .value("red", red) .value("green", green) ; for describing enums and make validator use such descriptions, if you be great. But Boost.Python's enum_ heavily depends on Boost.Python, it seems. - Volodya