Я встретил несколько вопросов, ответы на которые гласят, что использование T * никогда не является лучшей идеей.
Хотя я уже много использую RIIC, в моем коде есть одна особенность, где я использую T *. Читая о нескольких автоматических указателях, я не смог найти ни одного, где я бы сказал, что у меня есть явное преимущество от его использования.
Мой сценарий:
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
и, следовательно, Я не считаю это большой проблемой. В картографе нет нового
и не потребуется удалить
).
Итак, какая альтернатива является лучшей для этого конкретного использования -case?