
On Fri, 2012-12-28 at 00:43 +1100, Joshua Boyce wrote:
On Thu, Dec 27, 2012 at 4:56 AM, ST <smntov@gmail.com> wrote:
Hi,
It would be great to implement support for open-end options, something like that:
item_1 = 23 item_2 = 45 ... item_N = 465
The idea is to to be able to provide following input:
configOptions.add_options() ("item_", value<int>(), "items");
now if add_options() sees a key that ends with a "_" it accepts all options with keys that start with item_, no matter what comes after it, and treat all of them as int . Nesting should also be possible - like this: "item_.subitem_.subsubitem_" (item_3.subitem_FOO.subsubitem_34 should be a valid option key). I can try to implement it, however only if it will have a chance to be merged into the boost library. Whom should I contact regarding this?
I checked this and indeed everything worked just fine. Following declaration worked as expected configOptions.add_options() ("item_*", value<int>(), "items"); and recognized item_1, item_3, etc, while rejecting unknown options. Its really sad, that this feature is not mentioned in the documentation - I saw numerous people asking for it on different forums over last years. And also here there were people who need it. Well now the question is, how can I write a custion validate function that will populate a map, like this: map<string, int> itemsMap; options_description generic("Generic options"); generic.add_options() ("item_*",value<map<string, int>>(&itemsMap)->multitoken(), "items") ; My question is - how do I get the key of the option from within validate() function? Thanks in advance, Simone