Hi All,

I am using program option for my program. Here is my code snippet 

 string inputFile, outputFile;

/* Populate command line arguments */
    po::options_description desc("Usage: KDMGenerator [OPTIONS]");
    {
        desc.add_options()
            ("help", "prints this message") 
            ( "input-file", po::value<string>(&inputFile), "input file name" )
            ( "output-file", po::value<string>(&outputFile), "output file name");
    }

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

    if (vm.count("help") || !vm.size())
    {
        cout <<desc;
        return 0;
    }

    if(vm.count("input-file"))
    {
        cout << "Input file :" << inputFile << '\n';
    }

    if(vm.count("output-file"))
    {
        cout << outputFile << '\n';
    }


The issue I am facing is that if i I call my program without passing value for input file, something like 

./myapp --input-file --output-file out.txt

I get Input file: --output-file


i.e the value "--output-file" get stored in inputFile and vm.count("output-file") returns zero.

Is this the desired behavior? Is there any workaround for this?

--
Vivek,