Vladimir "Dair" Lebedev-Schmidthof (dair_spb) wrote,
Vladimir "Dair" Lebedev-Schmidthof
dair_spb

Программирование на C++

Коллеги пишут библиотеку общего назначения.
Почему-то вместо геттеров вида

const SomeType& getSomeTypeValue() const;

используется монструозная конструкция

bool getSomeTypeValue(SomeType* holder);

Пользоваться будет неудобно от слова совсем.
Ладно, типа непонятно, что возвращать, если нет объекта (а это вполне возможно).
Предложил указатель.

SomeType* getSomeTypeValue() const;

Ну и nullptr, если ничего нет.
Говорят "непонятно, кто владеет указателем".
Кому непонятно, а кому и понятно — нет никакого new, значит, ты не владеешь указателем. Хочешь владеть — создавай копию. Вроде в C++ всегда так.

Нет.

Окей, предложил смарт-поинтер. И типа нормально — он с понятным владением, удалится всё само, ну и вот это всё.

Вроде договорились.
Потом заболел на 4 дня.
Читаю сегодня:

"Идея использования смарт-указателей вместо скрытой имплементации уже обсуждалась с Имярек. Он против этой идеи. А если использовать сырые указатели, то это еще хуже, так как будет провоцировать пользователей, привыкших к автоматической сборке мусора, писать код с утечками памяти."

Это вроде про C++ речь. Откуда в C++ "пользователи, привыкшие к автоматической сборке мусора"?..
Tags: software development
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 16 comments