I recently discovered an undocumented feature of boost::program_options, namely that it accepts "*" as a special wildcard that allows declaration of a group of options with the same prefix, like this:
configOptions.add_options()
    ("item_*", value<int>(), "items");
This declaration worked as expected and recognized item_1, item_3, etc, while rejecting unknown options.
Well now the question is, how can I write a custom validate function
that will populate a map with options key and its value, like this:
map<string, int> itemsMap;
options_description items("items options");
    items.add_options()
        ("item_*",value<map<string, int>>(&itemsMap)->multitoken(), "items")
    ;
My question is - how do I get the key of the option being validated from within validate() function?
template <typename T> void validate(boost::any& v, const std::vector<std::string>& values, map<string, T> *, int)
 
     
    