как передать в треад ссылку на std::map

 
0
 
C++
ava
box | 21.09.2013, 21:53
всем привет !
собственно по сабжу, приведите пожалуйста пример передачи ссылки на стд мап в треад с последующей передачей  из треада в функцию         
Comments (5)
ava
box | 21.09.2013, 22:57 #
пытаюсь так :

typedef struct _configuration Configuration;
struct _configuration {
   int id;
   std::map<string, uint64_t>& map_syn;
};
..........
//в треаде

Configuration *conf = (Configuration *) ptr;
std::map<string, uint64_t> map_syn = (std::map<string, uint64_t>)conf[0].map_syn;
..........
//в main()
Configuration conf[1] = {{0, mymap_temp_syn}};
thread1Create = pthread_create(&thread1, NULL, &pthread_Message, (void*)conf);



что не так ?
ava
akizelokro | 22.09.2013, 11:34 #

std::map<string, uint64_t>& map_syn;


Что ты хочешь сказать этой строкой в определении struct _configuration ?
Зачем здесь &?
ava
box | 22.09.2013, 13:57 #
кто нибудь по существу скажет что нибудь ?
убрал & ситуация не изменилась , при компиляции такие ошибки :

bridge.cpp:781:21: error: no matching function for call to 'pthread_create'
    thread1Create = pthread_create(&thread1, NULL, &pthread_Message, (void*)conf);
                    ^~~~~~~~~~~~~~
/usr/include/pthread.h:197:6: note: candidate function not viable: no known conversion from 'void *(*)(void *, std::map<string, uint64_t> &)' to 'void *(*)(void *)' for 3rd argument
int             pthread_create(pthread_t *, const pthread_attr_t *,
ava
akizelokro | 22.09.2013, 14:12 #
Цитата (box @  22.9.2013,  13:57 findReferencedText)
/usr/include/pthread.h:197:6: note: candidate function not viable: no known conversion from 'void *(*)(void *, std::map<string, uint64_t> &)' to 'void *(*)(void *)' for 3rd argument


Здесь у тебя ошибка на третьем параметре, придётся тебе и определение функции pthread_Message смотреть
ava
box | 22.09.2013, 18:02 #
спасибо, разобрался !
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  box   akizelokro
advanced
Submit