Форум программистов, компьютерный форум, киберфорум
Наши страницы
Boost C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
elijah_valera
0 / 0 / 3
Регистрация: 08.11.2012
Сообщений: 12
1

boost::geometry::model::box и boost::geometry::area

30.04.2013, 18:44. Просмотров 1713. Ответов 1
Метки нет (Все метки)

Здравствуйте! Пытаюсь измерить площадь box'a , но не знаю как правильно это сделать. Вот этот код при компиляции выдает кучу ошибок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
#include <boost/geometry.hpp>
 
#include <boost/geometry/geometries/point_xy.hpp>
 
using namespace boost::geometry::model;
using namespace boost::geometry::model::d2;
 
 
int main(int argc, char* argv[])
{
    
    box<point_xy<float, float>> b(point_xy<float, float>(0.0f, 0.0f), point_xy<float, float>(2.0f, 2.0f));
 
    std::cout << boost::geometry::area(b) << std::endl;
 
    return 0;
}
Ошибки:
Код
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\core\cs.hpp(196): error C2039: type: не является членом "boost::geometry::traits::cs_tag<CoordinateSystem>"
1>          with
1>          [
1>              CoordinateSystem=float
1>          ]
1>          c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(40): см. ссылку на создание экземпляров класса шаблон при компиляции "boost::geometry::cs_tag<G>"
1>          with
1>          [
1>              G=boost::geometry::model::d2::point_xy<float,float>
1>          ]
1>          c:\users\илья\documents\visual studio 2010\projects\box_test\box_test\box_test.cpp(16): см. ссылку на создание экземпляров класса шаблон при компиляции "boost::geometry::default_area_result<Geometry>"
1>          with
1>          [
1>              Geometry=boost::geometry::model::box<boost::geometry::model::d2::point_xy<float,float>>
1>          ]
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(42): error C3203: type: неспециализированный класс шаблон нельзя использовать в качестве аргумента шаблон для параметра шаблон "Tag", требуется действительный тип
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(42): error C2955: boost::type: для использования класса шаблон требуется список аргументов шаблон
1>          c:\program files\microsoft visual studio 10.0\vc\include\boost\type.hpp(14): см. объявление "boost::type"
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(42): error C2955: boost::geometry::strategy::area::services::default_strategy: для использования класса шаблон требуется список аргументов шаблон
1>          c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\area.hpp(36): см. объявление "boost::geometry::strategy::area::services::default_strategy"
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(42): error C2039: type: не является членом "boost::geometry::strategy::area::services::default_strategy"
1>          c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\area.hpp(36): см. объявление "boost::geometry::strategy::area::services::default_strategy"
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(44): error C2955: boost::type: для использования класса шаблон требуется список аргументов шаблон
1>          c:\program files\microsoft visual studio 10.0\vc\include\boost\type.hpp(14): см. объявление "boost::type"
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(44): error C2039: return_type: не является членом "boost::type"
1>          c:\program files\microsoft visual studio 10.0\vc\include\boost\type.hpp(14): см. объявление "boost::type"
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(44): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "type"
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(44): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(44): error C2208: boost::type: нет членов, определенных с помощью этого типа
1>c:\program files\microsoft visual studio 10.0\vc\include\boost\geometry\strategies\default_area_result.hpp(44): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
Подскажите, что я делаю не так. Заранее благодарен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2013, 18:44
Ответы с готовыми решениями:

Boost начало работы: Undefined reference to `boost::system::generic_category() '
Добрый день Собственно говоря возникла необходимость использовать boost в...

Boost Log - undefined reference to `boost::system::system_category()'
Пытаюсь скомпилировать код из примеров Boost Log:#include...

Использование boost и boost.build с несколькими компиляторами
Здравствуйте! Собрал библиотеку boost и boost.build для двух компиляторов:...

Метапрограммирование в boost::proto (boost::spirit)
В библиотеке boost:: proto есть такой код ...

Qt и boost boost::system::generic_category()
Добрый день Не подскажите как настроить Qt на работу с boost? У меня в...

1
lozhev
0 / 0 / 1
Регистрация: 03.06.2013
Сообщений: 1
07.06.2013, 09:15 2
дело во втором float'e в point_xy<float,float>, надо бы cs
C++
1
2
template<typename CoordinateType, typename CoordinateSystem = cs::cartesian>
class point_xy : public model::point<CoordinateType, 2, CoordinateSystem>
както так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "boost/geometry/geometry.hpp"
#include "boost/geometry/geometries/point_xy.hpp"
 
using namespace boost::geometry;
using namespace model;
using namespace d2;
int main ()
{
    boost::geometry::model::box<boost::geometry::model::d2::point_xy<float>> b1(boost::geometry::model::d2::point_xy<float>(0,0),boost::geometry::model::d2::point_xy<float>(2,2)); 
    double a1 = boost::geometry::area(b1);//4.0
 
    box<point_xy<float>> b2(point_xy<float>(0,0),point_xy<float>(3,5));
    double a2 = area(b2);//15.0
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2013, 09:15

Qt и boost
Как правильно прикрутить boost к Qt Creator? Можно ли использовать уже...

boost::serialization
Рассматривал тему boost::serialization. И в примере ниже моя студия выкидывает...

Boost Установка
ребят помогите установить буст либы в борланд спп 6. даю команду C:\Program...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru