diff --git a/include/boost/program_options/detail/parsers.hpp b/include/boost/program_options/detail/parsers.hpp index 3391a68..4ac0c7a 100644 --- a/include/boost/program_options/detail/parsers.hpp +++ b/include/boost/program_options/detail/parsers.hpp @@ -38,7 +38,7 @@ namespace boost { namespace program_options { : detail::cmdline( // Explicit template arguments are required by gcc 3.3.1 // (at least mingw version), and do no harm on other compilers. - to_internal(detail::make_vector(argv+1, argv+argc))) + to_internal(detail::make_vector(argv+1, argv+argc+!argc))) {} diff --git a/src/cmdline.cpp b/src/cmdline.cpp index 3468f6a..e236e5f 100644 --- a/src/cmdline.cpp +++ b/src/cmdline.cpp @@ -98,10 +98,10 @@ namespace boost { namespace program_options { namespace detail { { #if defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) vector args; - copy(argv+1, argv+argc, inserter(args, args.end())); + copy(argv+1, argv+argc+!argc, inserter(args, args.end())); init(args); #else - init(vector(argv+1, argv+argc)); + init(vector(argv+1, argv+argc+!argc)); #endif }