2017-03-25 12 views
0

이 같은 부스트 ​​V1.53의 program_option을 사용하고 있습니다 : 부스트를 사용하여 변환을 실패 ..부스트 :: bad_any_cast는 : any_cast

#include <iostream> 
#include <fstream> 
#include <string> 
#include <cstdlib> 
#include "linked_list.h" 
#include <map> 
#include "stdList.h" 
#include "vector.h" 
#include "set.h" 
#include "AVL.h" 
#include <boost/program_options.hpp> 


using namespace std; 
namespace po = boost::program_options; 

int main(int argc ,char* argv[]) 
{ 
    ifstream dictionary, text; 
    ofstream output; 
    string dictionaryFile, textFile, outputFile,dtStructure; 


    po::options_description desc("Allowed options"); 
    desc.add_options() 
    ("DataStructure, s", po::value<string>()->required(), "Specify datastructure") 
    ("Dictionary, d", po::value<string>()->required(), "Specify dictionary") 
    ("TextFile, t", po::value<string>()->required(), "Specify textfile") 
    ("Output, o", po::value<string>()->required(), "Specify output file"); 

try 
{ 

    po::variables_map vm; 
    po::store(po::parse_command_line(argc, argv, desc), vm); 
    po::notify(vm); 
    const string dtStruct=vm["DataStructure"].as<string>(); 
    cout <<"data is " <<dtStruct <<endl; 


} 
catch (const exception &e) 
{ 
    cerr <<e.what()<<endl; 
    return EXIT_FAILURE; 
} 
------and more code------ 

을하지만, 내가 를 컴파일 할 때 \ 출력 --DataStruture의 a.dat -. -Dictionary dict --TextFile small - 출력. 이 부스트 :: bad_any_cast을 보여줍니다

파일 : :: any_cast

어떤 생각이 왜 부스트를 사용하여 변환을 실패?

답변

1

코드가 정확합니다. 옵션을 명령 행에 잘못 입력했습니다.

+0

아 ... 간단한 실수! 고마워 .. 그러나, 만약 내가 변수에 명령 줄 값을 초기화하고 싶다면, const 문자열을 사용하지 않고 어떻게 할 수 있습니까? –