analizer
05.10.2011 10:39 mcabber
плюсач, продолжаю тему пимплов и прочего ускорения компиляции за счёт forward declarations. если функция-фабрика создаёт объект, то должна ли она возвращать умный указатель, или же достаточно простого пойнтера? как велит твоё чуйство прекрасного?
она должна использоваться как smart_ptr( factory.get_my_fuced_object() )
оно логично, вопрос-то в том, должна ли она иметь прототип вида fuced_object* factory::get_my_fuced_object() const; или же smart_ptr<fuced_object> factory::get_my_fuced_object() const; ?
а вдруг ты вместо smart_ptr захочешь какой-то другой умный указатель? что тогда делать будешь?
fukken_smart_ptr( factory.get_my_fuced_object().release() )
и потом думать чтобы он еще и поддерживал конвертацию из smart_ptr ?
какая конвертация? у всех вумных указателей release() возвращает просто указатель, который более никем не мэнэджится
это какая-то тайная конвенция. вместо того, чтобы отдать пользователю то что ему надо, ты начинаешь рассказывать про то что у хороших парней есть функция release. а вдруг ты захочешь свои объекты в контейнер положить. контейнеру тоже release делать каждый раз?
я просто сказал что слово «конвертация» излишняя. твою позицию я понял, и в принципе с ней согласен. спасибо.