title: Can Boost Program_options separate comma separated argument values
body: <p>If my command line is:</p>
  
  <pre><code>&gt; prog --mylist=a,b,c
  </code></pre>
  
  <p>Can Boost's program_options be setup to see three distinct argument values for the <code>mylist</code> argument? I have configured program_options as:</p>
  
  <pre><code>namespace po = boost::program_options;
  po::options_description opts("blah")
  
  opts.add_options()
      ("mylist", std::vector&lt;std::string&gt;&gt;()-&gt;multitoken, "description");
  
  po::variables_map vm;
  po::store(po::parse_command_line(argc, argv, opts), vm);
  po::notify(vm);
  </code></pre>
  
  <p>When I check the value of the <code>mylist</code> argument, I see one value as <code>a,b,c</code>. I'd like to see three distinct values, split on comma. This works fine if I specify the command line as:</p>
  
  <pre><code>&gt; prog --mylist=a b c
  </code></pre>
  
  <p>or</p>
  
  <pre><code>&gt; prog --mylist=a --mylist=b --mylist=c
  </code></pre>
  
  <p>Is there a way to configure program_options so that it sees <code>a,b,c</code> as three values that should each be inserted into the vector, rather than one?</p>
  
  <p>I am using boost 1.41, g++ 4.5.0 20100520, and have enabled c++0x experimental extensions.</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>The accepted solution works but ends up being more complicated, IMO, than just iterating through a vector and splitting the values manually. In the end, I took the suggestion from James McNellis and implemented it that way. His solution wasn't submitted as an answer, however, so I accepted the other correct solution from hkaiser. Both worked, but the manual tokenization is clearer.</p>