我们以前在本地构建了aws-sdk-cpp,并围绕它设计了一个库。现在我正在升级使用Conan提供的aws-sdk-cpp,而不是本地构建的,但是我从我们的库中得到了错误。
我调用AWS函数,如下所示
std::string src_bucket;
DeleteObject
// ...
obj.WithBucket(src_bucket).WithDelete(std::move(del));但我会犯这样的错误。
error: no matching function for call to 'Aws::S3::Model::DeleteObjectsRequest::WithBucket(const string&)`.此函数调用是否更改为现在允许std::string?是否有办法使AWS方法接受std::string?
发布于 2021-09-02 17:15:39
是否有办法使AWS方法接受std::string?
是。这些函数接受std::string如果禁用自定义内存管理。
如果启用了编译时常量(on),则类型解析为STL类型,并将自定义分配器连接到AWS内存系统。 如果禁用编译时常量(off),则所有Aws::* type将解析为相应的默认std::* type。
看起来,前者是您所得到的,而后者是您所期望的--也许您已经从静态链接SDK (默认关闭)切换到动态链接SDK (默认为?
在任何情况下,您都必须以某种方式构建SDK,禁用自定义内存管理,使用像Aws::String这样的类型,或者使用根据需要在Aws::String和std::string之间进行转换。
https://stackoverflow.com/questions/69034313
复制相似问题