Index: boost/program_options/variables_map.hpp =================================================================== --- boost/program_options/variables_map.hpp (revision 67142) +++ boost/program_options/variables_map.hpp (working copy) @@ -68,11 +68,28 @@ const T& as() const { return boost::any_cast(v); } + template + const T& as(T const& default_value) const { + try { + return as(); + } catch (boost::bad_any_cast const&) { + return default_value; + } + } + /** @overload */ template T& as() { return boost::any_cast(v); } + template + T& as(T & default_value) { + try { + return as(); + } catch (boost::bad_any_cast const&) { + return default_value; + } + } /// Returns true if no value is stored. bool empty() const;