+ return do_get_integer(iit, eit, b, err, v);
+ }
+
+#ifdef LYX_USE_LONG_LONG
+ iter_type
+ do_get(iter_type iit, iter_type eit, ios_base & b,
+ ios_base::iostate & err, long long & v) const
+ {
+ return do_get_integer(iit, eit, b, err, v);
+ }
+
+ iter_type
+ do_get(iter_type iit, iter_type eit, ios_base & b,
+ ios_base::iostate & err, unsigned long long & v) const
+ {
+ return do_get_integer(iit, eit, b, err, v);
+ }
+#endif
+
+ iter_type
+ do_get(iter_type iit, iter_type eit, ios_base & b,
+ ios_base::iostate & err, float & v) const
+ {
+ return do_get_float(iit, eit, b, err, v);
+ }
+
+ iter_type
+ do_get(iter_type iit, iter_type eit, ios_base & b,
+ ios_base::iostate & err, double & v) const
+ {
+ return do_get_float(iit, eit, b, err, v);
+ }
+
+ iter_type
+ do_get(iter_type iit, iter_type eit, ios_base & b,
+ ios_base::iostate & err, long double & v) const
+ {
+ return do_get_float(iit, eit, b, err, v);
+ }
+
+ iter_type
+ do_get(iter_type iit, iter_type eit, ios_base & b,
+ ios_base::iostate & err, void * & v) const
+ {
+ unsigned long val;
+ iter_type end = do_get_integer(iit, eit, b, err, val);
+ if (!(err & ios_base::failbit))
+ v = reinterpret_cast<void *>(val);
+ return end;
+ }
+
+private:
+ template <typename ValueType>
+ iter_type
+ do_get_integer(iter_type iit, iter_type eit, ios_base & b,
+ ios_base::iostate & err, ValueType & v) const
+ {
+ string s;