boost::program_options multitoken пользовательских типов

#c #boost #boost-program-options

#c #boost #boost-program-options

Вопрос:

У меня есть пользовательский тип (по сути, a BOOST_STRONG_TYPEDEF of int ), который я хочу boost::program_options проанализировать multitoken() . Я реализовал operator<< / operator>> для него, так что один параметр этого типа компилируется нормально. Однако, std::vector<MyType> переданный в качестве value параметра multitoken() , выдает статическую ошибку во время компиляции:

 Target type is neither std::istream`able nor std::wistream`able
  

Что я делаю не так?

Комментарии:

1. Не могли бы вы поделиться строкой кода, в которой вы вызываете -> multitoken() ?

2. Можете ли вы также поделиться реализацией operator >> , а также использованием BOOST_STRONG_TYPEDEF для полноты? Я не получаю никаких ошибок, когда пытаюсь воспроизвести это (Fedora 24 x64 Boost 1.60.0 g 6.1.1 и clang 3.8.0).