Bonjour,

Je me suis enfin mis à la librairie Boost hier, et j'ai réussi à compiler tout ce que j'ai eu sous la main.

Dans le cadre du 4ème défi C++, j'envisage d'utiliser la libraire program_options (en fait c'est déjà fait), par contre je n'arrive pas à me débarrasser d'un problème ennuyeux avec zero_tokens().

Après avoir compiler, je teste mon programme de la manière suivante (l'option -x est paramétrée avec zero_tokens()):
./test -x d

J'obtiens l'erreur suivante:
in option 'depart': at least one value required

D'après la doc c'est pas vraiment ce que je devrais obtenir...

Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <string>
#include <boost/program_options.hpp>
 
namespace po = boost::program_options;
 
int main(int ac, char* av[])
{
try{
        // Declare the supported options.
        po::options_description desc("Options permises");
        desc.add_options()
        ("help,h", "affiche ce message d'aide")
        ("depart,x", po::value<std::string>()->zero_tokens(), "nom du point de départ")
        ;
 
        po::variables_map vm;
        po::store(po::parse_command_line(ac, av, desc), vm);
        po::notify(vm);
 
}
catch(const std::exception& e)
{
        std::cerr << e.what() << std::endl;
}
return 0;
}
Je compile de la manière suivante:
g++ -I /usr/local/boost_1_39_0 test.cpp -o test /usr/local/boost_1_39_0/stage/lib/libboost_program_options-gcc43-mt.a


Voici la version de gcc que j'utilise sous Linux Mint (distrib basé sur Ubuntu 8.10):

Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.2-1ubuntu12' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu12)


<EDIT>

J'ai exactement le même problème sous Vista64 SP2 avec Visual Studio 2008. Est-ce que quelqu'un a essayé de compiler mon code pour me confirmer que je ne suis pas fou?

</EDIT>

Merci pour votre aide!