[/============================================================================
  Boost.Geometry (aka GGL, Generic Geometry Library)

  Copyright (c) 2007-2013 Barend Gehrels, Amsterdam, the Netherlands.
  Copyright (c) 2008-2013 Bruno Lalande, Paris, France.
  Copyright (c) 2009-2013 Mateusz Loskot, London, UK.

  Use, modification and distribution is subject to the Boost Software License,
  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  http://www.boost.org/LICENSE_1_0.txt)
=============================================================================/]


[/ Generated by doxygen_xml2qbk 1.1.1, don't change, will be overwritten automatically]
[/ Generated from doxy/doxygen_output/xml/structboost_1_1geometry_1_1tag__cast.xml]
[section:tag_cast tag_cast]

'''<indexterm><primary>tag_cast</primary></indexterm>'''
Metafunction defining a type being either the specified tag, or one of the specified basetags if the type inherits from them. 

[heading Description]
Tags can inherit each other. A multi\u005fpoint inherits, for example, both the multi\u005ftag and the pointlike\u005ftag. 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.

[heading Synopsis]
``template<typename Tag, typename ... BaseTags>
struct tag_cast
{
  // ...
};
``

[heading Template parameter(s)]
[table
[[Parameter] [Description]]
[[typename Tag] [The tag to be casted to one of the base tags ]]
[[typename ... BaseTags] [Base tags]]
]

[heading Header]
Either

`#include <boost/geometry.hpp>`


Or

`#include <boost/geometry/core/tag_cast.hpp>`

[include reference/core/tag_cast.qbk]

[endsect]

