私の String クラスは、演算子 char* オーバーロードを提供して、文字列を C 関数に渡すことができるようにします。
残念ながら、私の同僚がうっかりバグを発見してしまいました。
彼は効果的に次のコードを持っていました。
StringT str;
// Some code.
delete str;
このような将来のバグが発生するのを防ぐために、delete が文字列オブジェクトを char* にキャストするのを防ぐ方法はありますか? std::string
は、char 演算子のオーバーロードを提供しないことでこの問題を回避しますが、理想的には、オーバーロードを保持したまま、その削除が機能しないようにしたいと考えています。