Opened 10 years ago

#7504 new Bugs

boost::interprocess::basic_vectorbuf calls std::char_traits<char>::pbump() with potentially mismatching data type

Reported by: mbradshaw@… Owned by: Ion Gaztañaga
Milestone: To Be Determined Component: interprocess
Version: Boost 1.52.0 Severity: Problem
Keywords: Cc:

Description

boost::interprocess::basic_vectorbuf::seekoff() makes a call to base_t::pbump(), but the datatypes (may) mismatch for the parameter (and do on my system). std::char_traits<char>::pbump() takes an int (according to the standard), but basic_vectorbuf() is passing it a value of type CharTraits::off_type, which is implementation defined. Since std::char_traits<char>::off_type is __int64 on my system, I am getting a warning about a conversion from __int64 to int.

I don't know what the most appropriate solution is (maybe just a static_cast), but it would be nice to have this resolved so I can get back down to 0 warnings in my codebase.

I am using Visual Studio 2010 and the latest Boost (and I just check svn trunk and it has the same issue). I get this warning when creating a boost::interprocess::basic_vectorstream like so:

basic_vectorstream<std::vector<char>, std::char_traits<char>> vs;

Change History (0)

Note: See TracTickets for help on using tickets.