Задать вопрос
Dyikot
@Dyikot

Почему умные указатели нельзя интегрировать в язык?

Например с помощью ключевого слова:
shared int a = 5; // или явно shared int(5);
и соответсвенно компилятор понимал это как:
std::shared_ptr<int> a = std::make_shared<int>(5);
  • Вопрос задан
  • 113 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
@MarkusD Куратор тега C++
все время мелю чепуху :)
А зачем это делать?
Какая цель у такого изменения? Какую существующую сейчас проблему это изменение должно решить?

Писать сейчас не удобно? Это не проблема. C++ существует и развивается в согласии с основным принципом: любое явное всегда лучше любого неявного.
Многие люди в своем коде этот принцип стремятся нарушить и этим создают себе проблемы. Но эти проблемы решать должны сами же люди, а не изменения в языке.
Ответ написан
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Можно, но нужно ли? Польза только в том, что вы экономите 6 симолов (std:: уже можно убрать через using namespace std например). И то, только в случае, когда вам нужен именно вот такой вот указатель. А если вам нужен unique_ptr, а если вам нужен ваш собственный умный указатель, который как-то по другому память выделяет? А если вам надо не make_shared вызывать, а какой-то фабричный метод? Плюс это добавит кучу вопросов вроде, а как будет указатель на указатель? Указатель обычно идет после типа вроде int*, почему shared вы ставите перед ним?

В общем, возни много, а польза весьма ограниченная.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
А что, разве кто-то запрещает? Берёте исходники и интегрируете.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы