Boost logo

Boost :

From: Neal D. Becker (nbecker_at_[hidden])
Date: 2003-04-30 08:56:45


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?


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk