LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Как раз в С++ все так и есть, как ты пишешь. В языке С++ нет никакой обвязки для шаред мемори. Программист создает удобную абстракцию (а именно, в виде либы Boost.Interprocess) над системной реализацией (lin, win, mac), которая вписывается в существующие принятые в С++ подходы: аллокаторы, пулы, raii, контейнеры, алгоритмы и т.д.

Как это всегда принято в C++ - для программиста всё прозрачно, и весь контроль на нем; но, в отличие от так же прозрачного С, есть более развитые средства для унификации, обобщенного программирования и построения абстраций.

Таков C++, и за это приходится платить некоторой всеобщей громоздкостью, но с которой можно мириться.

А в чём фундаментальная проблема в языках программирования - почему для работы с shared memory в принципе нужны какие-то обвязки?

Фундаментальность, наверное, в следующем. Либо у нас будет по обвязке-костылю в самом языке на каждую фичу, либо у нас будет монстр вида C++, зато с общим подходом. И это не только о шаред мемори.

Исходная версия Deleted, :

Как раз в С++ все так и есть, как ты пишешь. В языке С++ нет никакой обвязки для шаред мемори. Программист создает удобную абстракцию (а именно, в виде либы Boost.Interprocess) над системной реализацией (lin, win, mac), которая вписывается в существующие принятые в С++ подходы: аллокаторы, пулы, raii, контейнеры, алгоритмы и т.д.

Как это всегда принято в C++ - для программиста всё прозрачно, и весь контроль на нем; но, в отличие от так же прозрачного С, есть более развитые средства для унификации, обобщенного программирования и построения абстраций.

Таков C++, и за это приходится платить некоторой всеобщей громоздкостью, но с которой можно мириться.