В чем разница между бустом "windows_shared_memory" и бустом "managed_windows_shared_memory"? - PullRequest
2 голосов
/ 24 октября 2019

Boost предоставляет несколько типов разделяемой памяти. Среди них windows_shared_memory использует собственные возможности совместно используемой памяти Windows и, следовательно, зависит от платформы и имеет некоторые особенности по сравнению с другими общими памятью (POSIX-совместимыми).

Это описано здесь, в документации.

Однако на этой другой странице документации описан managed_windows_shared_memory. Ни один из них не упоминает о существовании другого.

В чем разница между этими двумя реализациями совместно используемой памяти?

Мне кажется, что они оба ведут себя одинаково в соответствии с документацией. Являются ли они одним и тем же механизмом, который просто отображает два разных интерфейса для их использования?

Включения, содержащие две реализации:

// The first implementation has to be included here
#include <boost/interprocess/windows_shared_memory.hpp>

// The second implantation has to be included here
#include <boost/interprocess/managed_windows_shared_memory.hpp>

1 Ответ

1 голос
/ 28 октября 2019

Слово «управляемый» в boost выделяет несколько семейств интерфейсов классов, а не только windows разделяемую память. Неуправляемые версии являются более прямыми и минимальными, предоставляя только то, что необходимо для работы на низком уровне. «Управляемые» версии, как правило, создаются на основе «неуправляемых», но также включают в себя больше магии шаблонов повышения, чтобы обеспечить более безопасный и высокоуровневый интерфейс. Обычно предпочитают «управляемые» версии, потому что они делают больше для вас.

...