diff --git a/include/boost/uuid/detail/throw_invalid_uuid.hpp b/include/boost/uuid/detail/throw_invalid_uuid.hpp index b546c55..9b15142 100644 --- a/include/boost/uuid/detail/throw_invalid_uuid.hpp +++ b/include/boost/uuid/detail/throw_invalid_uuid.hpp @@ -10,6 +10,7 @@ #include #include #include +#include namespace boost { namespace uuids { @@ -29,10 +30,10 @@ BOOST_CXX14_CONSTEXPR inline char const* fc_error_to_string( from_chars_error er } } -BOOST_NORETURN inline void throw_invalid_uuid( int pos, from_chars_error err ) +BOOST_NORETURN inline void throw_invalid_uuid( std::ptrdiff_t pos, from_chars_error err ) { char buffer[ 128 ]; - std::snprintf( buffer, sizeof( buffer ), "Invalid UUID string at position %d: %s", pos, fc_error_to_string( err ) ); + std::snprintf( buffer, sizeof( buffer ), "Invalid UUID string at position %td: %s", pos, fc_error_to_string( err ) ); BOOST_THROW_EXCEPTION( std::runtime_error( buffer ) ); } diff --git a/include/boost/uuid/detail/uuid_from_string.hpp b/include/boost/uuid/detail/uuid_from_string.hpp index fdeaf13..b3724c5 100644 --- a/include/boost/uuid/detail/uuid_from_string.hpp +++ b/include/boost/uuid/detail/uuid_from_string.hpp @@ -10,7 +10,6 @@ #include #include #include -#include namespace boost { namespace uuids { @@ -27,12 +26,12 @@ uuid uuid_from_string( Ch const* first, Ch const* last ) if( r.ec != from_chars_error::none ) { - detail::throw_invalid_uuid( static_cast( r.ptr - first ), r.ec ); + detail::throw_invalid_uuid( r.ptr - first, r.ec ); } if( r.ptr != last ) { - detail::throw_invalid_uuid( static_cast( r.ptr - first ), from_chars_error::unexpected_extra_input ); + detail::throw_invalid_uuid( r.ptr - first, from_chars_error::unexpected_extra_input ); } return u; diff --git a/include/boost/uuid/string_generator.hpp b/include/boost/uuid/string_generator.hpp index 83b3cb5..314286e 100644 --- a/include/boost/uuid/string_generator.hpp +++ b/include/boost/uuid/string_generator.hpp @@ -33,7 +33,7 @@ public: using result_type = uuid; template - BOOST_CXX14_CONSTEXPR uuid operator()( CharIterator first, CharIterator last, int& pos, from_chars_error& err ) const noexcept + BOOST_CXX14_CONSTEXPR uuid operator()( CharIterator first, CharIterator last, std::ptrdiff_t& pos, from_chars_error& err ) const noexcept { uuid u; @@ -170,7 +170,7 @@ public: template BOOST_CXX14_CONSTEXPR uuid operator()( CharIterator first, CharIterator last ) const { - int pos = 0; + std::ptrdiff_t pos = 0; from_chars_error err = {}; uuid r = operator()( first, last, pos, err );