|
Boost Users : |
From: Huifeng Shen (useradd_at_[hidden])
Date: 2005-09-06 07:50:58
I change the demo code of program_option first.cpp as below, when I compiled
with
cl /MDd /EHsc /D "BOOST_ANY_DYN_LINK" /D "_STLP_DEBUG" first.cpp
when run "first --help", a runtime error will occur.
when cl /MD /EHsc /D "BOOST_ANY_DYN_LINK" first.cpp, there is no runtime
error running "first --help".
----------------------------------------------------------------------------
-------------------
#include <boost/program_options.hpp>
namespace po = boost::program_options;
#include <iostream>
#include <iterator>
using namespace std;
int main(int ac, char* av[])
{
try {
po::options_description desc("Allowed options");
desc.add_options()
("help", "produce help message, a very very very very very long
long long long long long information") // The reason of rumtime error
("compression", po::value<int>(), "set compression level")
;
po::variables_map vm;
po::store(po::parse_command_line(ac, av, desc), vm);
po::notify(vm);
if (vm.count("help")) {
cout << desc << "\n";
return 1;
}
if (vm.count("compression")) {
cout << "Compression level was set to "
<< vm["compression"].as<int>() << ".\n";
} else {
cout << "Compression level was not set.\n";
}
}
catch(exception& e) {
cerr << "error: " << e.what() << "\n";
return 1;
}
catch(...) {
cerr << "Exception of unknown type!\n";
}
return 0;
}
----------------------------------------------------------------------------
------------------------
I also trace the error and find it occurs in the code
call format_one()/format_description/format_paragraph
The error code is line 361, options_description.cpp:
if (line_begin + (line_length - indent) > par_end)
{
line_end = par_end;
}
else
{
line_end = line_begin + (line_length - indent);
}
----- Original Message -----
From: "Vladimir Prus" <ghost_at_[hidden]>
To: <boost-users_at_[hidden]>
Sent: Tuesday, September 06, 2005 1:51 PM
Subject: Re: [Boost-users] A error when using long option
description,program_options library
> ??? wrote:
>
> > This runtime error only occurs when debug version, the release version
has
> > no such problem. The long option description can not be printed.
> >
> > My platform is vc7.1+stlport 4.62+boost 1.33, I also define the macro
> > _STLP_DEBUG and BOOST_LIB_DIAGNOSTIC.
> >
> > Some extraction of my code:
> > operatoins.add_options()
> > ("difference,d", "Get all the word of mine, origin file, my file,
> > output file")
>
> .......
>
>
> > when print "Get all the word of mine, origin file, my file, output ", a
> > runtime error occurs, the program terminates.
>
> Please provide the minimal complete program that reproduces this, and I'll
> try to debug this.
>
> - Volodya
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
>
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