Ошибка в коде с использованием boost named_semaphore - PullRequest
1 голос
/ 09 марта 2011

Я бы сохранил некоторые данные в общей памяти, используя именованные семафоры для управления доступом:

#include <boost/interprocess/sync/named_semaphore.hpp>

struct shared_memory_buffer
{
    // Application data
    int  items[10];

    // Synchronization data
    boost::interprocess::named_semaphore  syncSem;

    shared_memory_buffer()
    : syncSem(boost::interprocess::open_or_create_t, "testSemaphore", 0)   // error
    {}
};

Однако я получаю следующую ошибку времени компиляции в указанной строке:

error: expected primary-expression before ‘,’ token

Это моя система:

MacOS X 10,6

i686-apple-darwin10-g ++ - 4.2.1 (GCC) 4.2.1 (Apple Inc., сборка 5664)

Повышение 1.44

Спасибо!

1 Ответ

6 голосов
/ 09 марта 2011

boost::interprocess::open_or_create_t - это тип - вы, вероятно, хотите передать boost::interprocess::open_or_create, что, конечно, является экземпляром из open_or_create_t.Это задокументировано здесь .

...