自作アロケーターで作ったオブジェクトをスマートポインターにするなら、自作のデリーターを指定する必要があります。
スマートポインターの役割はデストラクターをスコープ外・参照カウント切れになったときにデストラクターをコールすることなので、スマートポインター生成時にブジェクトを解放する際のヒントを与えるほうが色々と便利だからです。
スマートポインターは割り当て時にはスタック領域のアドレスか、ヒープ領域のアドレスかといった区別もないですし、そうなるとカスタムアロケーターを使ったオブジェクトの後処理にデリーターは必要ですからね。
逆に言えばオブジェクトを解放する以外の事柄については、スマートポインターには何も期待できないということです。
Copyright 2018-2019, by Masaki Komatsu