summaryrefslogtreecommitdiffstats
path: root/testing/074_ref.cpp
blob: 141e2b4d8b52a893cc4e9ea7c0ffa41ec32305ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// objective: test \ref command in combination with const
// check: struct_foo.xml
/** @brief Foo class.
 *
 *  @see @ref Foo::Foo() constructor for details.
 *  @see @ref Foo constant.
 *  @see @ref operator<<(int) "less than operator".
 *  @see @ref operator<<(int) const "const less than operator".
 *  @see @ref operator()(int) "call operator".
 *  @see @ref operator()(int) const "const call operator".
 *  @see @ref operator&=(const Foo&) "and equal operator".
 *  @see @ref operator->*(int *) "member pointer operator".
 */
struct Foo {
  /** Constructor */
  Foo();
  /**
   * @brief Fun of two
   *
   * - fun() const
   * - @ref fun() const
   * - @ref fun() const "title"
   */
  static Foo fun(Foo a, Foo b);

  /** overloaded less than operator */
  Foo& operator<< (int i);

  /** overloaded const less than operator */
  const Foo& operator<< (int i) const;

  /** overloaded call operator */
  int operator()(int i);

  /** overloaded call operator */
  int operator()(int i) const;

  /** and equal operator */
  Foo& operator&=(const Foo& rhs);

  /** and equal operator */
  Foo& operator&=(const Foo& rhs);

  /** Member pointer operator */
  int* operator->*(int *p);

  /** @brief Fun with itself */
  Foo fun() const;
};