program_options support std::vector and not boost::container::vector
まだ誰も着手していません。
評価
調査の方向性
報告された po::value<boost::container::vectorstd::string> の例を再現し、既存の std::vector の処理と並行して program_options のパースを追跡します。ベクター値がどのように変換されるか、またパースで istream 演算子が不必要に要求されていないかを確認します; 示されたオプション形式がその演算子なしで正常にパースされ、テストカバレッジがあることをもって完了とします。
索引モデルが issue の本文から書いたものです。
説明
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<boost::container::vector<std::string> >(),"Run a named test suite. -T <suite>:<suite arguments>")
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<std::istream, boost::container::vector<std::string, void, void>,
boost::binary_op_detail::dont_care>::value || boost::has_right_shift<std::wistream,
boost::container::vector<std::string, void, void>, 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<std::basic_istream<wchar_t>, 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.
- 主要言語
- C++
- スター
- 136
- フォーク
- 117
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
boostorg/program_options のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
boostorg/program_options#147 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
boostorg/program_options#146 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
boostorg/program_options#144 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
boostorg/program_options#142 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 30/100
boostorg/program_options#139 ·
boostorg/program_options の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
AXERA-TECH/ax-llm#77 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
games-on-whales/wolf#509 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
-
bug-unconfirmed
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100