Boost logo

Boost Users :

From: Steve Byan (smb_at_[hidden])
Date: 2006-01-26 08:42:29

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 **

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.

Steve Byan <smb_at_[hidden]>
Software Architect
Egenera, Inc.
165 Forest Street
Marlboro, MA 01752
(508) 858-3125

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at