Metafunction defining a type being either the specified tag, or one of the specified basetags if the type inherits from them. More...
#include <tag_cast.hpp>
Public Types | |
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 | 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]}
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 |