nixp.ru v3.0

25 января 2017,
среда,
00:21:42 MSK

DevOps с компанией «Флант»
Longobard написал 13 февраля 2005 года в 12:19 (348 просмотров) Ведет себя как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.

Обьявлен такой вот простенький list:

std::list < pthread_t > ThreadIndex;

и далее я пишу такую строчку:

std::list ::reference pref = ThreadIndex.front();

На что компилятор ругнулся вот так:

error: invalid initialization of reference of type 'pthread_t&' from expression of type 'const long unsigned int'

Шозанах?

Longobard

Заменил pthread_t на unsigned int — все заработало. Но блин, приходится извращаца с приведением его туда-сюда.

sas
LONGOBARD
Заменил pthread_t на unsigned int — все заработало. Но блин, приходится извращаца с приведением его туда-сюда.

Ваше решение не правильное, т.к. оно не портируемое. pthread_t — закрытый тип данных: т.е. может быть реализован разработчиком библиотеки как структура или указатель или… В принципе в этой ситуции есть 2 пути, каждый со своими достоинствами и недостатками.

1 — Список указателей на pthread_t

2 — Написать класс оболочку реализовав минимальный набор операций, необходимых элементу списка

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.