-namespace internal
-{
- /**
- * A type that is sometimes used for template tricks. For example, in some
- * situations one would like to do this:
- *
- * @code
- * template <int dim>
- * class X
- * {
- * // do something on subdim-dimensional sub-objects of the big
- * // dim-dimensional thing (for example on vertices/lines/quads of
- * // cells):
- * template <int subdim> void f();
- * };
- *
- * template <int dim>
- * template <>
- * void X<dim>::f<0> ()
- * {
- * ...operate on the vertices of a cell...
- * }
- *
- * template <int dim, int subdim> void g(X<dim> &x)
- * {
- * x.f<subdim> ();
- * }
- * @endcode
- *
- * The problem is: the language doesn't allow us to specialize
- * <code>X::f()</code> without specializing the outer class first. One of
- * the common tricks is therefore to use something like this:
- *
- * @code
- * template <int N>
- * struct int2type
- * {};
- *
- * template <int dim>
- * class X
- * {
- * // do something on subdim-dimensional sub-objects of the big
- * // dim-dimensional thing (for example on vertices/lines/quads of
- * // cells):
- * void f(int2type<0>);
- * void f(int2type<1>);
- * void f(int2type<2>);
- * void f(int2type<3>);
- * };
- *
- * template <int dim>
- * void X<dim>::f (int2type<0>)
- * {
- * ...operate on the vertices of a cell...
- * }
- *
- * template <int dim>
- * void X<dim>::f (int2type<1>)
- * {
- * ...operate on the lines of a cell...
- * }
- *
- * template <int dim, int subdim>
- * void g(X<dim> &x)
- * {
- * x.f (int2type<subdim>());
- * }
- * @endcode
- *
- * Note that we have replaced specialization of <code>X::f()</code> by
- * overloading, but that from inside the function <code>g()</code>, we can
- * still select which of the different <code>X::f()</code> we want based on
- * the <code>subdim</code> template argument.
- *
- * @deprecated Use std::integral_constant<int, N> instead.
- *
- * @author Wolfgang Bangerth, 2006
- */
- template <int N>
- struct DEAL_II_DEPRECATED int2type
- {};
-
-
- /**
- * The equivalent of the int2type class for boolean arguments.
- *
- * @deprecated Use std::integral_constant<bool, B> instead.
- *
- * @author Wolfgang Bangerth, 2009
- */
- template <bool B>
- struct DEAL_II_DEPRECATED bool2type
- {};
-} // namespace internal
-
-
-
/**
* A type that can be used to determine whether two types are equal. It allows
* to write code like