Hi, I am using boost library 1.63.0 in an old project, which still uses VS2005. I get some compiler warnings from boost::filesystem: boost\libs\filesystem\src\unique_path.cpp(114) : warning C4267: 'argument' : conversion from 'size_t' to 'DWORD', possible loss of data boost\libs\filesystem\src\windows_file_codecvt.cpp(43) : warning C4244: 'argument' : conversion from '__w64 int' to 'int', possible loss of data boost\libs\filesystem\src\windows_file_codecvt.cpp(43) : warning C4244: 'argument' : conversion from '__w64 int' to 'int', possible loss of data boost\libs\filesystem\src\windows_file_codecvt.cpp(63) : warning C4244: 'argument' : conversion from '__w64 int' to 'int', possible loss of data boost\libs\filesystem\src\windows_file_codecvt.cpp(63) : warning C4244: 'argument' : conversion from '__w64 int' to 'int', possible loss of data boost\boost\filesystem\string_file.hpp(27) : warning C4267: 'argument' : conversion from 'size_t' to 'std::streamsize', possible loss of data boost\boost\filesystem\string_file.hpp(38) : warning C4267: 'argument' : conversion from 'size_t' to 'std::streamsize', possible loss of data I am new on boost-users, so I don't yet know, whether patches for compiler warnings are welcome, but I would like to propose some changes: For the warning in unique_path.cpp(114),I think it is safe to static_cast len to DWORD:
BOOL gen_ok = ::CryptGenRandom(handle, static_cast <DWORD>(len), static_cast
(buf));
For the two lines in windows_file_codecvt.cpp, I also think that a static_cast is ok: windows_file_codecvt.cpp(42) > if ((count = ::MultiByteToWideChar(codepage, MB_PRECOMPOSED, from, windows_file_codecvt.cpp(43) > static_cast<int>(from_end - from), to, static_cast<int>(to_end - to))) == 0) windows_file_codecvt.cpp(62) > if ((count = ::WideCharToMultiByte(codepage, WC_NO_BEST_FIT_CHARS, from, windows_file_codecvt.cpp(63) > static_cast<int>(from_end - from), to, static_cast<int>(to_end - to), 0, 0)) == 0) The last two warnings are in generic parts, and changes would affect not only windows. Unfortunately, I have no good idea, on how to fix or avoid these warnings. 73, Mario -- Mario Klebsch Actia I+ME GmbH Mario.klebsch@ime-actia.demailto:Mario.klebsch@ime-actia.de Dresdenstrasse 17/18 Fon: +49 531 38 701 716 38124 Braunschweig Fax: +49 531 38 701 88 Germany