Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Boost и С++builder
Форум на CrossPlatform.RU > Библиотеки > boost
ms00
Проблема в следующем: В прогу нужно включить boost asio.
Поставил последний билдер(2009) а который она якобы встроенна, но при
#include <boost/asio.hpp>

получаю результат компилятора:

[BCC32 Error] auto_link.hpp(257): E2075 Incorrect pragma directive option: -v
[BCC32 Error] static_log2.hpp(51): E2451 Undefined symbol 'n'
[BCC32 Error] static_log2.hpp(55): E2451 Undefined symbol 'value'
[BCC32 Error] static_log2.hpp(55): E2230 In-line data member initialization requires an integral constant expression
[BCC32 Fatal Error] static_log2.hpp(49): F1004 Internal compiler error at 0x45957a7 with base 0x4500000

что интересно на аналогичная ситуация и с bds 2006-2007
может с асио ещё что-то подключать надо?
Может кто сталкивался посоветуйте, 2 дня уже бьюсь
Andrew Selivanov
как дежурный вариант посмотри включен ли путь к boost в include directories ну и читать доки по тому как пользоваться им в этом билдере.
ms00
Конечно включён, и либ тоже, он же файлы находит и подключает.

[BCC32 Error] auto_link.hpp(257): E2075 Incorrect pragma directive option: -v
Пробовал убрать прараметр -v(не знаю для чего он нужен)
#if __BORLANDC__ > 0x561
#pragma defineonoption BOOST_BORLAND_DEBUG -v
#endif

компилятор выдал следующее:

[BCC32 Warning] socket_select_interrupter.hpp(158): W8012 Comparing signed and unsigned values
[BCC32 Error] read_until.hpp(44): E2514 Cannot (yet) use member overload resolution during template instantiation
[BCC32 Error] read_until.hpp(44): E2514 Cannot (yet) use member overload resolution during template instantiation
[BCC32 Error] read_until.hpp(44): E2514 Cannot (yet) use member overload resolution during template instantiation


код:
namespace detail
{
template <typename T>
struct has_result_type
{
struct big { char a[100]; };
template <typename U> static big helper(U, ...);
template <typename U> static char helper(U, typename U::result_type* = 0);
static const T& ref();
enum { value = (sizeof((helper)((ref)())) == 1) }; // ошибка в этой строке
};
} // namespace detail

Поясните что это всё значит, и правильно ли я сделал убрав этот параметр... Литературы нет, разбираюсь методом тыка
ViGOur
Цитата(ms00 @ 7.11.2008, 12:39) *
Пробовал убрать прараметр -v(не знаю для чего он нужен)
этого как раз не нужно делать, думаю не дураки писали эти строчки! :)
ms00
Я догадываюсь, но что ещё делать, билдер тупо не может скомпилировать, написанные сля него строчки
ViGOur
а если попробовать не 2009 а по ниже?
ms00
по ниже я пробовал, но дело в том что в 2009 эта библиотека уже встроена
Tonal
Не надо пользоваться C++ Builder-ом. После 5ой версии там нормального компилятора не было. :(
Кроме того, разработчики Boost-а Builder не поддерживают.
kuler
Цитата(Tonal @ 11.11.2008, 9:11) *
После 5ой версии там нормального компилятора не было.

ну и гооон. Вот один пример улучшайнинга - в 2007 можно форму наследовать от интерфейса, что очень приятно и полезно, а в 5 нельзя.
Tonal
Вообще-то я формы от интерфейса ещё в BCB 6 наследовал.
Но не в этом дело.
Вот если бы они код на стандартном С++ нормально за это время стали компилять - тады да.
А то разные рюшечки прикручивают, а глюки компилятора и рантайма с 5ки висят. :(
Единственный ведь компилятор из современных который до сих пор SFINAE не понимает.

П.С. Хотя если его использовать как Delphi с сишным синтаксисом оно конечно не так заметно. :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.