diff --git a/include/boost/archive/basic_text_iprimitive.hpp b/include/boost/archive/basic_text_iprimitive.hpp index 606f59f58..254601707 100644 --- a/include/boost/archive/basic_text_iprimitive.hpp +++ b/include/boost/archive/basic_text_iprimitive.hpp @@ -26,6 +26,7 @@ #include #include // size_t +#include // itoa #include #if defined(BOOST_NO_STDC_NAMESPACE) @@ -86,10 +87,13 @@ class BOOST_SYMBOL_VISIBLE basic_text_iprimitive { template void load(T & t) { + auto pos = is.tellg(); if(is >> t) return; + static char at_offset[64] = "at offset "; + itoa(pos, &at_offset[10], 10); boost::serialization::throw_exception( - archive_exception(archive_exception::input_stream_error) + archive_exception(archive_exception::input_stream_error, at_offset) ); }