format_parser::format_parser(std::ios_base &ios,void *cookie,void (*imbuer)(void *,std::locale const &)) : ios_(ios), d(new data) { d->position=std::numeric_limits<unsigned>::max(); d->precision=ios.precision(); d->flags = ios.flags(); d->info=ios_info::get(ios); d->saved_locale = ios.getloc(); d->restore_locale=false; d->cookie = cookie; d->imbuer = imbuer; }