Boost logo

Boost Users :

Subject: [Boost-users] Boost program_options
From: Steve Nolen (drnuke_at_[hidden])
Date: 2009-08-21 16:09:09


in program_options::parse_command_line - why can't the the argument
"argv" be of type 'const charT*' rather than 'charT*'?

i ask because our unit tests were giving a bunch of errors because they
were written like this..

vector< char* > cmdLine;
cmdLine.push_back( "someExec" );
cmdLine.push_back( "--optflag1" );
cmdLine.push_back( "value1" );
etc.

then...
char ** argv = &cmdLine[ 0 ];

then passing this to parse_command_line. when we compile under g++ 4.x
we get warnings that assigning string literals to char* is a deprecated
conversion. Actually I agree with the rationale, but this leaves me
with a problem calling parse_command_line. Is it going to change any of
these values?

I know the c standard calls for the argv in main's prototype to be
non-const, but why can't parse_command_line be more restrictive?


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net