| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Заголовок <boost/shared_ptr.hpp> как подключить? |
| Автор: moes 18.2.2009, 14:01 |
| Проблема в следующем. Есть проект на с++. Хотелось бы использовать в нем boost библиотеку и в частности shared_ptr. Для каждого классы используеться отдельный заголовочный файл .h и отдельный файл с реализацией .схх. При попытке подключения <boost/shared_ptr.h> в заголовочном файле компилятор gcc4.1.x выюает ошибку Error: G__getvariable: expression /basics/boost/include/boost/config.hpp:23: Error: operator '/' divided by zero /basics/boost/include/boost/config.hpp:23: Error: operator '/' divided by zero /basics/boost/include/boost/config.hpp:23: Syntax Error: <boost/config/user.hpp> /basics/boost/include/boost/config.hpp:23: Error: cannot expand #include BOOST_USER_CONFIG /basics/boost/include/boost/config.hpp:27: Warning: Error occurred during reading source files Warning: Error occurred during dictionary source generation Судя по всему она связана с циклическими зависимостями. При подклбчении того же заголовка в схх файле все компилится, однако необходимо создать переменные класса типа shared_ptr. Выходом было бы forward declaration клоассов для shared_ptr, но тогда придется объявлять члены класса указателями на shared_ptr что не хочется делать. Что посоветуете, кто нибудь сталкивался с подобной проблемой ? |
| Автор: Vaulter 18.2.2009, 15:41 | ||
все работает. версия буста? |
| Автор: moes 18.2.2009, 16:17 | ||||
версия 1.35. вот что написано в одном из коментариев в буст. // // This header can get included by boost/shared_ptr.hpp which leads // to cyclic dependencies, the workaround is to forward declare all // the boost components, and then include the actual headers afterwards. // This is fragile, but seems to work, and doesn't require modification // of boost/shared_ptr.hpp. // |