不确定是什么导致了以下警告,正如我所读,可以安全地忽略32位:
conversion from 'std::streamsize' to 'size_t', possible loss of data
我正在执行常规的Boost序列化,程序运行良好。唯一的问题是编译器在以下代码中存在问题:
while compiling class template member function 'void boost::archive::basic_binary_iprimitive<Archive,Elem,Tr>::load_binary(void *,size_t)'
知道这是怎么回事?
答案 0 :(得分:1)
std::streamsize是带符号的整数类型。 size_t是无符号整数类型。
这是一种不安全的转换,因为它可能会导致数据丢失。 编译器检测到不安全的转换并发出警告。