boost::geometry::tag_cast
tag_cast.hpp
typename Tag
typename BaseTag
typename BaseTag2 void
typename BaseTag3 void
typename BaseTag4 void
typename BaseTag5 void
typename BaseTag6 void
typename BaseTag7 void
boost::mpl::if_< typename boost::is_base_of< BaseTag, Tag >::type, BaseTag, typename tag_cast< Tag, BaseTag2, BaseTag3, BaseTag4, BaseTag5, BaseTag6, BaseTag7, void >::type >::type typedef boost::mpl::if_< typename boost::is_base_of<BaseTag, Tag>::type, BaseTag, typename tag_cast < Tag, BaseTag2, BaseTag3, BaseTag4, BaseTag5, BaseTag6, BaseTag7, void >::type >::type boost::geometry::tag_cast< Tag, BaseTag, BaseTag2, BaseTag3, BaseTag4, BaseTag5, BaseTag6, BaseTag7 >::type type

Metafunction defining a type being either the specified tag, or one of the specified basetags if the type inherits from them.

Tags can inherit each other. A multi_point inherits, for example, both the multi_tag and the pointlike_tag. Often behaviour can be shared between different geometry types. A tag, found by the metafunction tag, can be casted to a more basic tag, and then dispatched by that tag.

Tag

The tag to be casted to one of the base tags

BaseTag

First base tag

BaseTag2

Optional second base tag

BaseTag3

Optional third base tag

BaseTag4

Optional fourth base tag

BaseTag5

Optional fifth base tag

BaseTag6

Optional sixth base tag

BaseTag7

Optional seventh base tag

[include reference/core/tag_cast.qbk]
- boost::geometry::tag_cast
  type