我使用以下代码获得"memcpy未在此范围错误中定义":
CommonSessionMessage::CommonSessionMessage(const char* data, int size)
: m_data(new char[size]) {
memcpy(m_data.get(), data, size);
}
Run Code Online (Sandbox Code Playgroud)
我查看了这个网站和谷歌,找不到可以解决这个问题的解决方案.
任何援助将不胜感激.
谢谢.
#include <cstring>
CommonSessionMessage::CommonSessionMessage(const char* data, int size)
: m_data(new char[size])
{
std::memcpy(m_data, data, size);
}
Run Code Online (Sandbox Code Playgroud)
看来这m_data就是char*类型。如果是这样,那么它就没有get()功能,并且m_data.get()在您的代码中没有意义。
另一种解决方案是使用std::copyas :
#include<algorithm>
CommonSessionMessage::CommonSessionMessage(const char* data, int size)
: m_data(new char[size])
{
std::copy(data, data + size, m_data);
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢第二种解决方案。阅读 的文档std::copy。