Какой тип (автоматический) указатель использовать?

Я встретил несколько вопросов, ответы на которые гласят, что использование 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?

6
задан b.buchhold 13 September 2013 в 10:20
поделиться