C++ は「move 後に抜け殻が残ります」を何とかしてくれ、切実に
こいつのせいで movable な型が即座の破棄を要求されないか或いは実質 empty 状態を持つことが要求されていてつらい
std::string くらいなら、まあ即座の破棄を遅延してもメモリがちょっと余計に長く使われるくらいだけど (それも嫌なら空文字列にして切り詰めればいいけど)、もっと貴重なハードウェア関係のリソースの抽象化とかどう足掻いても「リソース保持してません状態」を許容しないと movable にならないやんけ