2011-03-09 6 views
1

je garderais des données dans la mémoire partagée, en utilisant les sémaphores nommés pour gérer l'accès:Bug dans le code en utilisant boost named_semaphore

#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 
    {} 
}; 

Cependant, je reçois l'erreur de compilation suivante à la ligne indiquée:

error: expected primary-expression before ‘,’ token 

Ceci est mon système:

Mac OS X 10.6

i686-pomme-darwin10-g + + -4.2.1 (GCC) 4.2.1 (Apple Inc. construire 5664)

Boost 1,44

Merci!

Répondre

5

boost::interprocess::open_or_create_t est un type – vous voulez sans doute passer boost::interprocess::open_or_create, ce qui est bien sûr une instance de open_or_create_t. Ceci est documenté here.

+0

Vous avez raison, merci. Ces petits détails ... – Pietro

Questions connexes