Информация об изменениях

Сообщение Re[3]: Безопасное использование C++ от 01.10.2021 9:41

Изменено 01.10.2021 9:42 Videoman

Re[3]: Безопасное использование C++
Здравствуйте, sergii.p, Вы писали:

SP>
SP>std::unique_ptr<Foo> f;
f->>foo();
SP>

SP>и "современный" подход заключается в том, чтобы закрыть глаза на этот вид проблем.

Что мешает Google использовать свои умные указатели везде, которые будут проверять такие условия не давать в них делать инициализацию по умолчанию ?!
Почему тогда они до сих пор пишут так (пример из webrtc.lib):
AudioRtpSender::AudioRtpSender(rtc::Thread* worker_thread,
                               const std::string& id,
                               StatsCollector* stats,
                               SetStreamsObserver* set_streams_observer)
    : RtpSenderBase(worker_thread, id, set_streams_observer),
      stats_(stats),
      dtmf_sender_proxy_(DtmfSenderProxy::Create(
          rtc::Thread::Current(),
          DtmfSender::Create(rtc::Thread::Current(), this))),
      sink_adapter_(new LocalAudioSinkAdapter()) {}

???
И это типичный Google код из Хрома. Вот пойди разберись что здесь передается как ссылка, а что для захвата владения

Они уже из простого интернет протокола HTTP сделали штуку (HTTP3) которую хрен реализуешь на коленке и будешь вынужден использовать кусок Хрома, причем не важно, нужна тебе секьюрность или нет. WebRTС — монстр, внутри которого наслоения всех протоколов за последние 40 лет. Всё технологии за которые берется Google превращаются в инструмент для решения бизнес задач Google, не пригодными ни для чего другого.
Re[3]: Безопасное использование C++
Здравствуйте, sergii.p, Вы писали:

SP>
SP>std::unique_ptr<Foo> f;
f->>foo();
SP>

SP>и "современный" подход заключается в том, чтобы закрыть глаза на этот вид проблем.

Что мешает Google использовать свои умные указатели везде, которые будут проверять такие инварианты и не давать делать инициализацию по умолчанию ?!
Почему тогда они до сих пор пишут так (пример из webrtc.lib):
AudioRtpSender::AudioRtpSender(rtc::Thread* worker_thread,
                               const std::string& id,
                               StatsCollector* stats,
                               SetStreamsObserver* set_streams_observer)
    : RtpSenderBase(worker_thread, id, set_streams_observer),
      stats_(stats),
      dtmf_sender_proxy_(DtmfSenderProxy::Create(
          rtc::Thread::Current(),
          DtmfSender::Create(rtc::Thread::Current(), this))),
      sink_adapter_(new LocalAudioSinkAdapter()) {}

???
И это типичный Google код из Хрома. Вот пойди разберись что здесь передается как ссылка, а что для захвата владения

Они уже из простого интернет протокола HTTP сделали штуку (HTTP3) которую хрен реализуешь на коленке и будешь вынужден использовать кусок Хрома, причем не важно, нужна тебе секьюрность или нет. WebRTС — монстр, внутри которого наслоения всех протоколов за последние 40 лет. Всё технологии за которые берется Google превращаются в инструмент для решения бизнес задач Google, не пригодными ни для чего другого.