On Jan 26, 2006, at 4:54 AM, Vladimir Prus wrote:
Simply, the standard says second argument of main is non-const. Using const version is strictly speaking, invalid,
There are circumstances where one wishes to pass something other than main()'s raw arguments to parse_command_line(). For example, I've refactored a suite of test tools to use a simple common command-line tool framework. In this framework, I save argc and argv as member variables which are initialized in the constructor of the base class of the framework. I defer the call to parse_command_line() to a method called sometime later, after derived classes have the opportunity to configure their unique options_description. In this case, it's nice to be able to declare myArgv as const char ** myArgv. boost::program_options:: doesn't really modify argv, does it?
and in practice I recall there were some problems making both consts and non-const to work.
I can see how it wold be difficult to handle deriving the non-const
type from the template arguments. If it's a trade between being const-
correct and supporting localization, clearly supporting localization
is the way to go.
Regards,
-Steve
--------
Steve Byan