为什么 Aws::String 没有扩展 std::string
Why is Aws::String not extending std::string
我们之前在本地构建了 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
?
Is there a way to make AWS methods accept std::string?
是的。这些函数接受 std::string if custom memory management is disabled:
If the compile-time constant is enabled (on), the types resolve to STL types with a custom allocator connected to the AWS memory system.
If the compile-time constant is disabled (off), all Aws::* types resolve to the corresponding default std::* type.
看起来前者是你得到的,后者是你所期望的 - 也许你已经从静态链接 SDK(默认关闭)切换到动态链接 SDK(默认打开)?
在任何情况下,您都必须以某种方式在禁用自定义内存管理的情况下构建 SDK,自己使用 Aws::String
等类型,或者 .
我们之前在本地构建了 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
?
Is there a way to make AWS methods accept std::string?
是的。这些函数接受 std::string if custom memory management is disabled:
If the compile-time constant is enabled (on), the types resolve to STL types with a custom allocator connected to the AWS memory system.
If the compile-time constant is disabled (off), all Aws::* types resolve to the corresponding default std::* type.
看起来前者是你得到的,后者是你所期望的 - 也许你已经从静态链接 SDK(默认关闭)切换到动态链接 SDK(默认打开)?
在任何情况下,您都必须以某种方式在禁用自定义内存管理的情况下构建 SDK,自己使用 Aws::String
等类型,或者