3
명령 줄에서 목록 입력을 구문 분석하려고합니다.boost :: program_options 오버로드 된 유효성 검사가 모호합니다.
내 클래스는 벡터
컴파일러는 오버로드 유효성을 모호한 것에 대해 불만을에서 파생됩니다. 그 이유를 알 수 있지만이 문제를 해결하는 방법을 모르겠습니다.
도와주세요.
다음은 오류를 생성하는 최소한의 예입니다. ch_list 유형이 벡터로 변경되면이 최소 예가 컴파일됩니다. 이러한 오류가
/usr/include/boost/program_options/detail/value_semantic.hpp: In instantiation of ‘void boost::program_options::typed_value<T, charT>::xparse(boost::any&, const std::vector<std::basic_string<charT> >&) const [with T = mylist; charT = char]’:
test.cpp:47:5: required from here
/usr/include/boost/program_options/detail/value_semantic.hpp:169:13: error: call of overloaded ‘validate(boost::any&, const std::vector<std::basic_string<char> >&, mylist*, int)’ is ambiguous
/usr/include/boost/program_options/detail/value_semantic.hpp:169:13: note: candidates are:
/usr/include/boost/program_options/detail/value_semantic.hpp:81:10: note: void boost::program_options::validate(boost::any&, const std::vector<std::basic_string<charT> >&, T*, long int) [with T = mylist; charT = char]
/usr/include/boost/program_options/detail/value_semantic.hpp:129:10: note: void boost::program_options::validate(boost::any&, const std::vector<std::basic_string<charT> >&, std::vector<_RealType>*, int) [with T = int; charT = char]