![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
tag_castBoost , Chapter 1. Geometry , Core Metafunctions
|
Параметр |
по умолчанию |
Описание |
---|---|---|
Имя пользователя |
The tag to be casted to one of the base tags | |
Типовое название BaseTag | Первый базовый тег | |
Имя типа BaseTag2 | пустота |
Optional second base tag |
Имя типа BaseTag3 | пустота | Факультативный третий базовый тег |
Имя типа BaseTag4 | пустота | Факультативный четвертый базовый тег |
Имя типа BaseTag5 | пустота | Факультативная пятая базовая метка |
Имя типа BaseTag6 | пустота | Факультативный шестой базовый тег |
Имя типа BaseTag7 | пустота | Факультативный седьмой базовый тег |
Либо
#include <boost/geometry.hpp>
Либо
#include <boost/geometry/core/tag_cast.hpp>
![]() | Note |
---|---|
Указанный список тегов обрабатывается в указанном порядке: как только тег наследует указанный тег, он определяется как метафункция typedefтипа. |
![]() | Note |
---|---|
Если ни один из указанных возможных базовых тегов не является базовым классом указанного тега, сам тег определяется как результат метафункции. |
Время компиляции
Проверьте, можно ли отлить полигон_тег в areal_tag
#include <iostream> #include <typeinfo> #include <boost/geometry.hpp> #include <boost/geometry/geometries/polygon.hpp> #include <boost/geometry/geometries/point_xy.hpp> namespace geo = boost::geometry; int main() { typedef geo::model::d2::point_xy<double> point_type; typedef geo::model::polygon<point_type> polygon_type; typedef geo::tag<polygon_type>::type tag; typedef geo::tag_cast<tag, geo::linear_tag, geo::areal_tag>::type base_tag; std::cout << "tag: " << typeid(tag).name() << std::endl << "base tag: " << typeid(base_tag).name() << std::endl; return 0; }
Выход (в MSVC):
tag: struct boost::geometry::polygon_tag base tag: struct boost::geometry::areal_tag
Статья tag_cast раздела Chapter 1. Geometry Core Metafunctions может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Core Metafunctions ::
реклама |