尝试使用以下代码将 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/