首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Aws::String不扩展std::string

为什么Aws::String不扩展std::string
EN

Stack Overflow用户
提问于 2021-09-02 16:50:10
回答 1查看 252关注 0票数 1

我们以前在本地构建了aws-sdk-cpp,并围绕它设计了一个库。现在我正在升级使用Conan提供的aws-sdk-cpp,而不是本地构建的,但是我从我们的库中得到了错误。

我调用AWS函数,如下所示

代码语言:javascript
复制
std::string src_bucket;
DeleteObject
// ...

obj.WithBucket(src_bucket).WithDelete(std::move(del));

但我会犯这样的错误。

代码语言:javascript
复制
error: no matching function for call to 'Aws::S3::Model::DeleteObjectsRequest::WithBucket(const string&)`.

此函数调用是否更改为现在允许std::string?是否有办法使AWS方法接受std::string

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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之间进行转换

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69034313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档