d.Candela (dervish_candela) wrote,
d.Candela
dervish_candela

Categories:

ок наконец понял что такое регулярные типы в с++

https://abseil.io/blog/20180531-regular-types

речь идёт о том, что если и семантика и синтаксис создания, копирования и сравнения value-объектов соответствуют семантике нативного типа («делай как int»), то такой тип называют регулярным.
его практическое свойство - можно использовать в стандартных контейнерах/алгоритмах
самое важное свойство - понятность происходящего с ним

PS
в конце статьи — очень смешно смотреть, как приходится извививаться, ну ей богу как ёрш на сковородке, чтобы определить константность для объекта.
Ага, если изначально назвать 40 лет назад (и с тех пор пор по привычке считать) «объектом» часть стека абстрактной машины без какой-либо изоляции.

дык нет у нас «объекта», народ. именно об этом трудность определения константности нам и говорит.
нет изоляции, нет референциальной прозрачности, нет контроля вторичных эффектов.
если ЛЮБАЯ операция может залезть в наш объект и нарушить его инварианты, то у нас нет «объекта»
если глобальное состояние, изменившись, может нарушить инвариант произвольного объекта без контракта - у нас нет «объекта».
о том и речь уж сколько лет-то.
Tags: c++, программирование - это 52% религии
Subscribe

  • shared pointers

    давно подозревал, что постоянная возня руками с .data() умных указателей unique_ptr/QScopedPtr, особенно с передачей за пределы динамически…

  • Fire and Forget для транспортных слоёв

    Пришлось за прошлый год работать над несколькими прикладными транспортными слоями. Изначальная идея работы транспортов «мы тут пока набиваем очередь,…

  • добавить *пустой* макрос в проект

    вот например такой классический код, который я не хочу/не могу менять: #if defined WIN32 #ifdef SUPER_API_EXPORTS #define SUPER_API…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment