2010-04-30 18 views
7

Quiero tener dos opciones para el programa para trabajar en la dirección inicial y la dirección final para que las opciones del programa son los siguientes:¿Cómo uso boost options_description con entrada hexadecimal?

--start_address 0xc0000000 --end_address 0xffffffff 

¿Es posible que options_description a tomar tales hexagonal de entrada? ¿Tengo que considerar la entrada como una cadena y convertirlos a valores hexadecimales? Tengo esto en la actualidad

po::options_description desc("Allowed options"); 

    desc.add_options() 
    ("help,h", "display this help message") 
    ("path,p", po::value<std::string>(), "Executable file path") 
    ("start_address,s", po::value<std::string>(), "Start address") 
    ("end_address,e", po::value<std::string>(), "End address") 
    ; 

Puede boost::lexical_cast hacer tal conversión?

Respuesta

4

ok. acabo de descubrir que puedo utilizar options_description para entrar en las opciones y luego analizar las opciones usando std :: stringstream a convertir en un número hexadecimal de la siguiente manera

boost::uint32_t start_address; 
    std::stringstream interpreter; 

    interpreter << std::hex << vm["start_address"].as<std::string>(); 

    interpreter >> start_address; 
+2

... pero, ¿cómo lidiar con la excepción que se produce cuando se intenta para permitir que ocurra el análisis predeterminado? – aardvarkk

Cuestiones relacionadas