c++ - 如何在 std::string 和 Aws::String 之间进行转换?

标签 c++ aws-sdk

尝试使用以下代码将 std::string 转换为 Aws::String 时:

std::string s("Johnny is cool");
Aws::String aws_s(s);

我收到以下错误:

error: no matching function for call to ‘std::__cxx11::basic_string<char, std::char_traits<char>, Aws::Allocator<char> >::basic_string(const string&)’

最佳答案

来自https://github.com/aws/aws-sdk-cpp/issues/416 。谢谢Bu11etmagnet !

<小时/>

如果您想要传递给 Aws 函数的 std::string,请从中构造一个 Aws::String

std::string s{"whatever"};
Aws::String aws_s(s.c_str(), s.size());
Aws::SomeFunction(aws_s);

如果您从 Aws 函数获得了 Aws::String,请从中构造一个 std::string:

Aws::String const& aws_s = Aws::SomeFunction();
std::string s(aws_s.c_str(), aws_s.size());

不幸的是,这两个都执行字符串内容的拷贝。

Aws::String aws_s(std_string.c_str()) 将使用 strlen() 测量字符串长度,该信息已包含在 std::string 对象中。

关于c++ - 如何在 std::string 和 Aws::String 之间进行转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52452144/

相关文章:

node.js - AWS SQS 从 lambda 触发到 Amazon Lightsails

python - 没有获得与分配标签相关的特定成本

c++ - LEA 指令 "=> 0xb48daed9 <+3479>: lea -0xc(%ebp),%esp"的意义是什么?

C++/Linux 出于性能原因对齐字符数组?

python - 使用 Python 在 AWS Lambda 中进行反向搜索

ruby was-sdk v2:Seahorse::Client::NetworkingError 异常:SSL_connect

javascript - 在不同文件中配置 AWS 时出现 ConfigError(本地使用 DynamoDB)

java - 如何调用传递给 JNI `jobject` 的 Java 对象的子类/子类的方法

c++ - 处理来自 DLL 的异常

C++子类使用父类函数