関数に渡したポインターをこの関数内で削除できないことを保証したい (コンパイラーがそのような関数の処理でエラーを生成することを意味します)。以下が元の状態です。
void foo(Bar *bar) { delete bar; }
今、私はいくつかの方法を試しましたが失敗しました。
void foo(Bar *bar) { delete bar; }
void foo(const Bar * const bar) { delete bar; } { delete bar; }
template <typename T> void foo(const T &t) { delete t; } // calling foo(bar);
知りたいのですが、ポインターの削除を禁止する方法はありますか?それが不可能な場合、なぜそれが作成されたのですか?