![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
Компилирую под g++ 4.5.1
Есть код, использую в нем boost thread & mutex. Все прекрасно компилировалось. Решил в одном месте лямбдо выражения, для этого в опции компиляции добавил -std=C++0x. Вылезла куча ошибок, я долго пытался понять откуда они взялись, убрал все что добавлял - ошибки оставались. Потом случайно убрал опцию -std=C++0x и... собралось. После чего я вспомнил что в новый стандарт включены свои средства для потоков и объектов синхронизации. Видать с которыми и конфликтует Boost... но на VS2010 у меня это работало, при условии использования лямбдовыражений (я так пологая что там эта опция была включена), а на g++ вылазит куча ошибок
это нормально ? как это испрвить ? ну т.е. юзать бустовские потоки, но при этом задействовать лямбда выражения ?... Простая замена boost::thread на std::thread и всех остальных элементов, не приведет к тому что придется их переделывать ? в VS2010 поддерживаются std-шные потоки ? |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
переделал везде на stl без проблем собралось. Надеюсь на vs тоже соберется.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
обратите внимание на ошибки и файлы указанные в описании. Единственный не из библиотечных это мой main.c на 5 строчке, где как раз написано include <boost/thread.hpp>
а то что частично, это я гдето видал тему о том что атомарные типы до сих пор не поддерживаются. А что еще ? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Ну вот например http://liveworkspace.org/code/af3478ac20ad...f61e9aed8c3d4fb на liveworkspace.org исходники компилируются с опцией -std=c++0x работает ведь.
так подробно не помню честно говоря, проверить не могу, у меня полная поддержка стоит, так-что все работает Добавлено через 3 минуты и 26 секунд Проверил все таки. Оказывается там вообще ничего нет, thread, mutex, condition_variable ... всего этого нет. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
никаких проблем с бустом при использовании -std=c++0x нет. код показывайте.
|
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
вот код
http://forum.vingrad.ru/forum/topic-323043.html с той лишь разницей что для многопоточонсти щас везде указано std, а не boost, ну и хедеры соотственные подключены, а аналогичные из буста закоменчены. На g++ v 4.5.1 это собирается, если вернуть многопоточонсть boost'a вываливаются ошибки приведенные в первом посте. в VS2010 напротив, с boost все собирается (+заюзаны лямбда), ну а поддержки std'ных как я уже сам убедился нету. |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
вот, пожалуйста.
http://liveworkspace.org/code/f82d6b5e3976...4fe9d2774cdb0fa что за компилятор? mingw или линуксовский gcc? версия как я понял 4.5.1? попробуй локализировать ошибку, собери минимальный проект, который не компилируется.
вот это у теня компилируется? Добавлено через 3 минуты и 59 секунд cupper кажется вижу источник проблемы
здесь нет префикса boost::, у тебя стоит using namespace std;, а какой нибудь из заголовков неявно включает std::thread. |
||||
|
|||||
| cupper |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
его нет так как в том примере как я уже сказал юзается std. Когда использовался boost, было явно написано boost::thread. Приду домой попробую постепенно из проекта выкидывать всю многопоточность что бы ради интереса узнать гдеж была ошибка. |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |