我想用“std::copy”替换我的“memcpy”,但我找不到传递参数的正确方法。
我的旧 memcpy 代码是
memcpy(&uFeatures.Features[0], &((char*)(m_pData))[iBytePos],iByteCount);
我用 std::copy 尝试了各种方法,但它们都不起作用。
请问有人可以帮忙吗?
从您的语法来看,它似乎是这样的。(假设 Features[0] 是 char*,如果不是,则需要强制转换(查看评论))
std::copy(&uFeatures.Features[0], &uFeatures.Features[0]+iByteCount, &((char*)(m_pData))[iBytePos])
正如我在你的评论中看到的
我想让编译器决定它喜欢什么(memcopy、memmove 或其他任何东西),这就是我想使用 std::copy 的原因
std::copy
不会被memcpy
编译器翻译成。他们是无关的。复制会做这样的事情
while (first != last) {
*d_first++ = *first++;
}