Здравствуйте, Аноним, Вы писали:
A>>Это я знаю, но boost не входит в стандарт. Плюс не во всех конторах разрешено его использовать.
А>Ну что я могу сказать...
А>Ждите, когда появится рабочий компилятор C++0x
А>А сейчас вы умными указателями вообще не пользуетесь?
Да я же не про себя писал.
Есть конторы, где даже наследование стараются не использовать.
Умные указатели — очень удобная вещь, которая позволяет использовать некоторые преимущества С++ (автоматический вызов деструктора при выходе из области видимости). Имхо лучше неоправдано использовать умный указатель, чем не использовать вообще, т.к. в большинстве случаев наличие этих указателей сильно повысит надёжность программ. Естественно, извратиться всегда можно, но сделать это уже сложнее, чем с голыми указателями.
Если какой-нибудь смарт-поинтер будет в стандарте (auto_ptr не считаю), то это должно увеличить их использование. Соответственно немного, но улучшится качество программ.
Представьте ситуацию — приходит программист в небольшую фирму, видит, что в проекте используются обычные указатели и говорит менеджеру, что не плохо бы использовать например boost::shared_ptr. Надо — подключить новую библиотеку, обучить всех сотрудников работать с ней, потратить некоторое количество времени только на сбор буста, что в первый раз наверняка вызовет сложности, затем тратить время на переписывание существующего кода и рисковать, что не будут внесены новые "особенности" программы. А заказчики ведь не ждут, и для мелкой фирмы это может быть критично.
Конечно не обязательно переписывать весь код, даже компилировать буст для использования указателей не надо, но как минимум остаётся риск некомпетентного использования нового инструмента.
А в случае стандарта — этот программист просто берёт и пишет так как ему нравится. Если к его коду не будет претензий — возьмётся за чужой, где также может постепенно вводить указатели там, где посчитает нужным.
Здесь на форуме часто проскакивает, что stl вредно использовать, что уж говорить про отдельную библиотеку.