I'm trying to learn to use program options, posted here by Vladimir Prus.

I was trying to use the variables map, and I wanted a "double" variable.  It 
seems validator is specialized for float, but not double.

I tried following the example of the float type:
namespace boost { namespace program_options {
  template<>
  void validator<double>::operator()(any& v, const vector<string>& xs)
  {
    check_first_occurence(v);
    string s(get_single_string(xs));
    try {
      v = any(lexical_cast<double>(s));
    }
    catch(bad_lexical_cast&) {
      throw validation_error("'" + s + "' doesn't look like a double value.");
    }
  }
}

But check_first_occurence and get_single_string are in an anonymous namespace, 
and are not accessible.

Is there a workaround?  Should these functions be moved to a different 
namespace to make extension more convenient?
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to