T* を使用することは決して最良のアイデアではないという回答がいくつかある質問に出くわしました。
私はすでに RIIC を多用していますが、私のコードには、T* を使用する特定のポイントが 1 つあります。いくつかの自動ポインターについて読んでいますが、それを使用することで明確な利点があると言えるものを見つけることができませんでした。
私のシナリオ:
class MyClass
{
...
// This map is huge and only used by MyClass and
// and several objects that are only used by MyClass as well.
HashMap<string, Id> _hugeIdMap;
...
void doSomething()
{
MyMapper mapper;
// Here is what I pass. The reason I can't pass a const-ref is
// that the mapper may possibly assign new IDs for keys not yet in the map.
mapper.setIdMap(&_hugeIdMap);
mapper.map(...);
}
}
MyMapper
これは、HashMap<...>*
無関係な問題に関する質問の投票数の多い回答によると、決して良い考えではありません (ただし、マッパーはインスタンスの前に範囲外になるため、MyClass
あまり問題ではないと考えています.new
マッパーには no があり、 noはdelete
必要ありません)。
では、この特定のユースケースで最良の代替手段は何ですか?