Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как передать в треад ссылку на std::map 
:(
    Опции темы
box
Дата 21.9.2013, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 27.2.2007

Репутация: нет
Всего: 0



всем привет !
собственно по сабжу, приведите пожалуйста пример передачи ссылки на стд мап в треад с последующей передачей  из треада в функцию         
PM MAIL   Вверх
box
Дата 21.9.2013, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 27.2.2007

Репутация: нет
Всего: 0



пытаюсь так :
Код

map<std::string, uint64_t> mymap_temp_syn;
 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);



что не так ?

Это сообщение отредактировал(а) box - 21.9.2013, 23:01
PM MAIL   Вверх
akizelokro
Дата 22.9.2013, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



Код

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


Что ты хочешь сказать этой строкой в определении struct _configuration ?
Зачем здесь &?

Добавлено @ 11:49
При последующемрассмотрении того, что написал дополнительно, понял, что дополнительно ещё ту глупостьнаписал. И потёр.
Это хорошо, что я не выпендриваюсь и самокритично отношусь к тому, что порой "сказану".
И эта..
"учиться никому не поздно"!

Это сообщение отредактировал(а) akizelokro - 22.9.2013, 12:21


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
box
Дата 22.9.2013, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 27.2.2007

Репутация: нет
Всего: 0



кто нибудь по существу скажет что нибудь ?
убрал & ситуация не изменилась , при компиляции такие ошибки : 

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 *,

PM MAIL   Вверх
akizelokro
Дата 22.9.2013, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



Цитата(box @  22.9.2013,  13:57 Найти цитируемый пост)
/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 смотреть.
Судя по сообщению компилятора, ты берёшь указатель на функцию, принимающую два параметра. 

тут

Это сообщение отредактировал(а) akizelokro - 22.9.2013, 14:20


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
box
Дата 22.9.2013, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 27.2.2007

Репутация: нет
Всего: 0



спасибо, разобрался !
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.