何か↓のような感じで.

  • push_back(void) はもろ move semantics の範疇
  • intrusive container はガワ (と node 側の concept) はどちらにしろ新しく作らないといけないとして, node-container 間の設計・実装の結合度を徹底的に下げることを念頭に置くと,
    • node と element を単一の allocation で済ませて, node に関する部分だけをコンテナに持たせたいっつー motivation は smart pointer の aliasing *1 を応用したいニヨイががが. footprint 増やさずにそんなことできるっけ?
    • コンテナ見ずに node 切り離したり再び元に戻したりしたい (クライアントに要素の所有権だけを渡して後で返してもらう系) のは……えーっとスマポの可逆な aliasing?
    • copyable でない要素を持たせたいっていう motivation は,標準の list 使っても move semantics で (一部) 解消するけど

ま,ただ基本的に (標準としてポータブルな) テンプレートライブラリはコンパイラの最適化 (特に inlining) が十分機能するという仮定に依存しない限りどうしようもない部分があるから,上記ドキュメントでそこを address されてるとなかなか……ねぇ?

*1:あるオブジェクト a の所有権をスマポに持たせつつ,そのスマポの指している先を, a がその lifetime を enclose している別のオブジェクト (典型的には a のメンバ変数) b に設定する機能のこと