0
class Foo {};
Foo foo;

namespace po = boost::program_options;

boost::program_options::options_description desc("Allowed options")
desc.add_options()
    ("foo", po::value<Foo>(&foo));

po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);

上記は、最終的に std::string& から Foo& への lex_cast を実行しようとします。

const char*& から Foo& への lex_cast を代わりに行う方法はありますか?

ありがとう!

4

1 に答える 1

0

の istream 演算子を定義することで、これを処理できますFoo

std::istream& operator>>(std::istream &input_stream, Foo &foo) {
    // read from input_stream into foo...
    // if read fails, set failbit in input_stream...
    return input_stream;
}
于 2012-04-06T00:32:07.813 に答える