「memcpy」を「std::copy」に置き換えたかったのですが、引数を渡す正しい方法が見つかりません。
私の古いmemcpyコードは
memcpy(&uFeatures.Features[0], &((char*)(m_pData))[iBytePos],iByteCount);
std::copy でいろいろ試してみましたが、どれもうまくいきませんでした。
誰か助けてくれませんか?
あなたの構文から、このようなものになるようです。(Feature[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++;
}