私はboost :: program_optionsオプションを使用して目的の入力オプションをベクトルに解析しますが、デフォルト値を与える方法もありません。例:ベクトル値のデフォルト値boost :: program_options
base.add_options()
("vector_value",po::value<std::vector<double> >(&vecoption)->multitoken(),"description");
がvecoptionsに値を読み取るために正常に動作し、かつ
base.add_options()
("int_value",po::value<int>(&intoption)->default_value(1),"description");
のようなものでも正常に動作しますが、ベクトル引数に
base.add_options()
("vector_value",po::value<std::vector<double> >(&vecoption)->default_value(std::vector<double>{0,1,2}),"description");
のようにデフォルト値を与えることを試みますコンパイラエラーが発生する
error: static assertion failed: Source type is neither std::ostream`able nor std::wostream`able
{0,1,2}のようなデフォルト値でベクトル値の浮動小数点オプションを作成するにはどうすればよいですか?
ていますが、明示的にテンプレート引数を提供する必要はありません。この場合、デフォルトのパラメータ値は次のように指定することができます'po :: value'。 '' po :: value(&intoption) ''と '' po :: value(&vecoption) 'は問題ありません。これは関数テンプレートです。 – Barry