#
#include <File.h>
template<class T, class U = void, class = int>
Template struct

Class with template parameters.

Template parameters
T | Template parameter T
U | Template parameter U

### Contents

- Reference
  - Public functions
  - Protected types
  - Protected functions
  - Protected variables

Should have it displayed on top.

## Public functions

void bar()
  Another.

## Protected types

enum Bar { }
  Enum.
using B = A
  Typedef.
using Foo = Buuu<U, false>
  Template alias.

## Protected functions

template<class V, int = 3>
void foo()
  Function.

## Protected variables

int a
  Variable.

## Enum documentation

###
template<class T, class U, class _3>
enum Template<T, U, _3>::Bar protected

Enum.

Should have just one template with _3 for unnamed parameter. Should also have the `protected` label in the details.

## Typedef documentation

###
template<class T, class U, class _3>
typedef A Template<T, U, _3>::B protected

Typedef.

Should have just one template with _3 for unnamed parameter. Should also have the `protected` label in the details.

###
template<class T, class U, class _3>
using Template<T, U, _3>::Foo = Buuu<U, false> protected

Template alias.

Should have just one template with _3 for unnamed parameter. Should also have the `protected` label in the details. Template parameters are tested in `cpp_template_aliases` test as they need newer Doxygen.

## Function documentation

###
template<class T, class U, class _3>
void Template<T, U, _3>::bar()

Another.

Should have just one template with _3 for unnamed parameter.

###
template<class T, class U, class _3> template<class V, int = 3>
void Template<T, U, _3>::foo() protected

Function.

Template parameters
V | Well, this is V

Should not repeat default parameter from class, should include both U and V in the docs. Should also have the `protected` label in the details.

## Variable documentation

###
template<class T, class U, class _3>
int Template<T, U, _3>::a protected

Variable.

Should have just one template with _3 for unnamed parameter. Should also have the `protected` label in the details.