Исправление Deleted, (текущая версия) :
Как раз в С++ все так и есть, как ты пишешь. В языке С++ нет никакой обвязки для шаред мемори. Программист создает удобную абстракцию (а именно, в виде либы Boost.Interprocess) над системной реализацией (lin, win, mac), которая вписывается в существующие принятые в С++ подходы: аллокаторы, пулы, raii, контейнеры, алгоритмы и т.д.
Как это всегда принято в C++ - для программиста всё прозрачно, и весь контроль на нем; но, в отличие от так же прозрачного С, есть более развитые средства для унификации, обобщенного программирования и построения абстраций.
Таков C++, и за это приходится платить некоторой всеобщей громоздкостью, но с которой можно мириться.
А в чём фундаментальная проблема в языках программирования - почему для работы с shared memory в принципе нужны какие-то обвязки?
Фундаментальность, наверное, в следующем. Либо у нас будет по обвязке-костылю в самом языке на каждую фичу, либо у нас будет монстр вида C++, зато с общим подходом. И это не только о шаред мемори.
Исходная версия Deleted, :
Как раз в С++ все так и есть, как ты пишешь. В языке С++ нет никакой обвязки для шаред мемори. Программист создает удобную абстракцию (а именно, в виде либы Boost.Interprocess) над системной реализацией (lin, win, mac), которая вписывается в существующие принятые в С++ подходы: аллокаторы, пулы, raii, контейнеры, алгоритмы и т.д.
Как это всегда принято в C++ - для программиста всё прозрачно, и весь контроль на нем; но, в отличие от так же прозрачного С, есть более развитые средства для унификации, обобщенного программирования и построения абстраций.
Таков C++, и за это приходится платить некоторой всеобщей громоздкостью, но с которой можно мириться.