\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL - 2D and 3D Linear Geometry Kernel
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Dimension_tag< dim > Class Template Reference

#include <CGAL/Dimension.h>


An object of the class Dimension_tag is an empty object which can be used for dispatching functions based on the dimension of an object, as provided by the dim parameter.

It is useful in cases where it is not more practical to pass the dimension as a template parameter directly.


The following code declares two functions constructing two points at the origin, either in 2D or in 3D.

Point_2<K> get_origin(Dimension_tag<2>) { return Point_2<K>(ORIGIN); }
Point_3<K> get_origin(Dimension_tag<3>) { return Point_3<K>(ORIGIN); }
std::cout << get_origin(Dimension_tag<2>())) << std::endl;
See Also
CGAL::Ambient_dimension<T, K>
CGAL::Feature_dimension<T, K>


static const int value
 The value of the dim parameter.