1 // objective: test \link command with a variadic template function
2 // check: 069__link__variadic__template_8cpp.xml
8 * At the time of writing, the part between \<\> is totally ignored:
9 * %func<Args...>(Args... args) is interpreted as %func(Args... args).
11 * Beware that a function parameter with either a \& or \* operator,
12 * e.g. 'const Args&... args', requires \\link and \\ref to specify
13 * such parameter as verbatim, i.e. 'const Args&... args'. At the
14 * time of writing, the form %func(const Args&...) will fail, unless
15 * the function parameter was declared just as 'const Args&...'.
18 * \link Test::func(int,Args...)const variadic template method\endlink
20 * Links to the variadic template function overloads:
21 * @li \link func(int,Args&... args) First overload\endlink
22 * @li \link func(int,Args&&... args) Second overload\endlink
23 * @li \link func(int,const Args&... args) Third overload\endlink
24 * @li \link func(int,const Args&&... args) Fourth overload\endlink
25 * @li \link func(int,Args*... args) Fifth overload\endlink
26 * @li \link func(int,Args**... args) Sixth overload\endlink
27 * @li \link func(int,const Args*... args) Seventh overload\endlink
28 * @li \link func(int,const Args**... args) Eighth overload\endlink
29 * @li \link func(int,Args...) Ninth overload\endlink
31 * The following are interpreted the same:
32 * @li \link func(int,const Args&... args) without template argument\endlink
33 * @li \link func<Args...>(int,const Args&... args) with template argument\endlink
35 * See the \link Test test\endlink class.
42 /** A variadic template function overload
44 template <typename... Args>
45 void func(int p, Args&... args);
47 /** A variadic template function overload
49 template <typename... Args>
50 void func(int p, Args&&... args);
52 /** A variadic template function overload
54 template <typename... Args>
55 void func(int p, const Args&... args);
57 /** A variadic template function overload
59 template <typename... Args>
60 void func(int p, const Args&&... args);
62 /** A variadic template function overload
64 template <typename... Args>
65 void func(int p, Args*... args);
67 /** A variadic template function overload
69 template <typename... Args>
70 void func(int p, Args**... args);
72 /** A variadic template function overload
74 template <typename... Args>
75 void func(int p, const Args*... args);
77 /** A variadic template function overload
79 template <typename... Args>
80 void func(int p, const Args**... args);
82 /** A variadic template function overload
84 template <typename... Args>
85 void func(int p, Args... args);
91 /** A variadic template method
93 template <typename... Args>
94 void func(int p, Args... args) const;