読者です 読者をやめる 読者になる 読者になる

static_vectorのムーブコンストラクタ/代入演算子は線形時間

C++

Boost 1.54.0からBoost.Containerに入ったstatic_vectorですが、そのムーブコンストラクタとムーブ代入演算子の計算量はO(N)になっています。

static_vector(static_vector&& other);

Move constructor. Moves Values stored in the other static_vector to this one.
...

Complexity. Linear O(N).

Class template static_vector - 1.54.0

static_vectorはスタック上に領域確保されるため、フリーストアのように「ムーブはポインタの付け替えだけ!」というわけにはいきません。
static_vector自身はムーブの恩恵を受けることができないので、そのトレードオフを理解した上で使用するコンテナを選択するとよいでしょう。