私は、いくつかのデータ、特に大きな静的に割り当てられた配列を含む構造体を持っています。 配列の長さが必ずしも完全に使用されているとは限りません。静的配列を持つC++の効率的な構造コピー
私はこのデータのコピーを(リアルタイムループで)非常に頻繁に行う必要があるので、できるだけ効率的にする必要があります。したがって、有用なデータを含む配列の長さだけをコピーしたいと思います。
以下は、代入演算子のオーバーライドに関する私の提案です。あなたはそれの効率を詳しく教えてください、そして、私がかなり理解していないコピーとスワップのイディオムとを比較してください(What is the copy-and-swap idiom?)。
struct Config
{
// Assignment operator: Copy all data from other instance
Config& operator=(const Config&obj)
{
currentArrayLength = obj.currentArrayLength;
memcpy(array, obj.array, obj.currentArrayLength * sizeof(array[0]));
return *this;
}
/* Static */
static const size_t arrayLengthMax = 1000;
/* Data */
uint32_t currentArrayLength = 0;
int32_t array[arrayLengthMax];
}