从'size_t'转换为'rapidjson :: SizeType'

mtb*_*mtb 4 c++ size-t type-conversion c++11 rapidjson

我有这个c ++示例代码:

void test()
{
    rapidjson::Document doc;
    doc.SetObject();

    const std::string source = "The quick brown fox jumps over the lazy dog";   
    rapidjson::Value source_val;
    source_val.SetString( source.c_str(), source.length(), doc.GetAllocator() );        
}
Run Code Online (Sandbox Code Playgroud)

在编译时,在x64平台上,我收到此警告:

警告C4267:'参数':转换size_trapidjson::SizeType,可能丢失数据

如何正确地从字符串的长度(size_t)转换为rapidjson SizeType?

uh *_*per 5

根据文件:

即使在64位平台上,RapidJSON也使用32位数组/字符串索引,而不是使用size_t.用户可以通过定义RAPIDJSON_NO_SIZETYPEDEFINE来覆盖 SizeType.