boostorg / boostorg/program_options
program_options support std::vector and not boost::container::vector
- Langage dominant
- C++
- Étoiles
- 136
- Forks
- 117
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
It may seem rather obvious, but boost::program_options doesn't appear to support boost::container::vector in the manner it supports std::vector. An an example, creating an option:
` ("test,T", po::value >(),"Run a named test suite. -T :")
`
will cause clang to say:
```
In file included from rogue.c++:6:
In file included from /usr/local/include/boost/program_options.hpp:15:
In file included from /usr/local/include/boost/program_options/options_description.hpp:13:
In file included from /usr/local/include/boost/program_options/value_semantic.hpp:14:
In file included from /usr/local/include/boost/lexical_cast.hpp:32:
In file included from /usr/local/include/boost/lexical_cast/try_lexical_convert.hpp:44:
/usr/local/include/boost/lexical_cast/detail/converter_lexical.hpp:243:13: error: static_assert
failed due to requirement 'has_right_shift,
boost::binary_op_detail::dont_care>::value || boost::has_right_shift, boost::binary_op_detail::dont_care>::value' "Target type is
neither std::istream`able nor std::wistream`able"
...BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_right_shift, T >::value),
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
... among other "nice" things. I've tried creating an istream for boost::container::vector and prototyping it before including program_options, but either I am not worthy or it's not possible for me to easily retrofit.
... seems like either program_options needs to make the istream optional (I'm certainly not using it) or convince boost::container::vector to include it. Dunno.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Reproduisez l’exemple signalé de po::value> et suivez le parsing de program_options parallèlement à sa gestion existante de std::vector. Vérifiez comment les valeurs de vecteur sont converties et si le parsing nécessite inutilement un opérateur istream ; le travail est terminé lorsque la forme d’option présentée est analysée avec succès sans cet opérateur et qu’elle dispose d’une couverture de tests.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- cli
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100