Specific Examples Test Suite#

Template Type Alias#

template<typename T, typename U, int N>
using IsFurry = std::is_furry<T, U, N>#

a type alias with three template arguments

Template Parameters:
  • T – this is the first template parameter

  • U – this is the second template parameter

  • N – this is the third template parameter, it is a non-type parameter

template<typename T>
using IsFuzzy = std::is_fuzzy<T>#

a type alias with one template argument

Template Parameters:

T – this is the template parameter

Typedef Examples#

class TestClass#

Public Types

typedef void *MemberTypedef#

A typedef defined in a class.

typedef void (*MemberTypedefFuncPointer)(int, double)#
class TypeDefTest#
namespace TypeDefNamespace#

Typedefs

typedef char *AnotherTypedef#
file typedef.h

Typedefs

typedef TypeDefTest (*TypeDefTestFuncPtr)(void)#
typedef void *(*voidFuncPtr)(float, int)#
typedef void *voidPointer#
typedef float *floatPointer#
typedef float floatingPointNumber#
typedef int TestTypedef#
using TypeAlias = int#

Namespaced Function Examples#

virtual void TestNamespaceClasses::NamespacedClassTest::function() const = 0#

namespaced class function

inline void TestNamespaceClasses::ClassTest::function()#

second namespaced class function

inline void TestNamespaceClasses::ClassTest::anotherFunction()#

second namespaced class other function

void ClassTest::function(int myParameter)#

non-namespaced class function

More details in the header file.

More documentation in the impl file

void ClassTest::anotherFunction()#

non-namespaced class other function

More documentation in the impl file

template<typename T>
void f0()#
template<>
void f0<std::string>()#
template<typename T>
void NS1::f1()#
template<>
void NS1::f1<std::string>()#
template<typename T>
void NS1::NS2::f2()#
template<>
void NS1::NS2::f2<std::string>()#

Extern Examples#

void cache_tree_free(struct cache_tree**)#
struct cache_tree#

Fixed Width Font#

class Out#

Public Functions

inline Out()#

Constructor for Out object

inline ~Out()#

Destructor for Out object

Function Overloads#

void f(int, int)#

Function which takes two int arguments.

void f(double, double)#

Function which takes two double arguments.

void test::g(int, int)#

Another function which takes two int arguments.

void test::g(double, double)#

Another function which takes two double arguments.

void h(std::string, MyType)#

Another function which takes a custom type.

void h(std::string, MyOtherType o)#

Another function which takes another custom type.

void h(std::string, const int myint)#

Another function which takes a const basic type.

template<typename T, typename U>
void h(std::string, const T m, const U n)#

Another function which takes a const basic type.

Program Listing#

class Vector#

Vector class

Vector center() const#

The center of the InteractionBox in device coordinates (millimeters). This point is equidistant from all sides of the box.

Vector boxCenter = interactionBox.center();
Vector max = interactionBox.max();
Vector diff = max - boxCenter;

Since

1.0

Returns:

The InteractionBox center in device coordinates.

Image#

class ImageClass#

This is a class with an image in the description.

It renders like this:

_images/imageExample.png

Breathe & Sphinx should automatically copy the image from the doxygen output directory into the _images folder of the Sphinx output.

Array Parameter#

int foo(int a[5])#

My function.

int bar(int n, int a[])#

My other function.

Test:

This declaration is supposed to be

int bar(int n, int a[static n]);
But, Sphinx fails to recognize int a[static n]) as a C specific array syntax

C Struct#

struct ACStruct#

Public Members

int i#
struct ANestedStruct#

Public Members

int i#

C Union#

union ACUnion#

Public Members

int i#

C Enum#

enum GSM_BackupFormat#

Backup data.

Values:

enumerator GSM_Backup_Auto#

Compatibility with old gboolean used instead of format.

File type is guessed for extension, non unicode format used for Gammu backup.

enumerator GSM_Backup_AutoUnicode#

Compatibility with old gboolean used instead of format.

File type is guessed for extension, unicode format used for Gammu backup.

enumerator GSM_Backup_LMB#

LMB format, compatible with Logo manager, can store phonebooks and logos.

enumerator GSM_Backup_VCalendar#

vCalendar standard, can store todo and calendar entries.

enumerator GSM_Backup_VCard#

vCard standard, can store phone phonebook entries.

enumerator GSM_Backup_LDIF#

LDIF (LDAP Data Interchange Format), can store phone phonebook entries.

enumerator GSM_Backup_ICS#

iCalendar standard, can store todo and calendar entries.

enumerator GSM_Backup_Gammu#

Gammu own format can store almost anything from phone.

This is ASCII version of the format, Unicode strings are HEX encoded. Use GSM_Backup_GammuUCS2 instead if possible.

enumerator GSM_Backup_GammuUCS2#

Gammu own format can store almost anything from phone.

This is UCS2-BE version of the format.

enumerator GSM_Backup_VNote#

vNote standard, can store phone notes.

C Typedef#

Typedefs

typedef int (*cTypeDefTestFuncPtr)(void)#

Sample typedef for a function pointer.

typedef void *(*cVoidFuncPtr)(float, int)#
typedef void *cVoidPointer#
typedef float *cFloatPointer#
typedef float cFloatingPointNumber#
typedef int cTestTypedef#

Test for a simple C typedef.

C Macro#

Defines

A_C_MACRO#
ANOTHER_C_MACRO(name)#

C++ Macro#

Defines

USE_STUFF#

A simple define without a value.

MAX_LENGTH#

A define with a simple value.

MAXIMUM(A, B)#

A define with some parameters.

Parameters:
  • A – The parameter A

  • B – The parameter B

Returns:

The maximum of A and B

SWAP(A, B)#

A define which spans multiple lines.

Multifile#

template<TestClass::Enum E>
void TestTemplateFunction()#

The non-type template parameter references a different file.

Interface Class#

interface InterfaceClass#

This is a test interface class.

Some details about the InterfaceClass interface

C++ Anonymous Entities#

struct ClassWithAnonEntities#

Public Types

enum [anonymous]#

Values:

enumerator Enumerator#

Public Members

int structMember#
struct ClassWithAnonEntities::[anonymous] [anonymous]#
int unionMember#
union ClassWithAnonEntities::[anonymous] [anonymous]#

C++ Union#

union Union#

Public Members

int i#
struct Class#
union Union#

Public Members

int i#

C++ Enums#

Enums

enum Unscoped#

Values:

enumerator UnscopedEnumerator#
enum class ScopedStruct : int#

Values:

enumerator Enumerator#
enum class ScopedClass : int#

Values:

enumerator Enumerator#
enum class ScopedClassNoUnderlying#

Values:

enumerator Enumerator#

C++ Functions#

struct Foo#
struct Class#

Public Functions

virtual void f1() volatile const & = 0#
virtual void f2() volatile const && = 0#
int f_issue_338() noexcept#

Public Members

void (*f_issue_489)(struct Foo *foo, int value)#

Public Static Functions

static void f3()#
namespace TestNamespaceFunction#

A namespace to demonstrate a namespaced function.

Functions

void namespaceFunc()#

A function within a namspace.

C++ Friend Classes#

struct A#
struct B#
struct C#

Friends

friend class A
friend struct B

C++ Inherited Members#

class Base#

Base class.

Subclassed by A, B

class A : public Base#

Class A.

class B : public Base#

Class B.

C++ Trailing Return Type#

Functions

auto f_issue_441() -> Thingy*#

Function that creates a thingy.

class Thingy#
#include <cpp_trailing_return_type.h>

needed for references in global function return type

C++ Constexpr Handling#

Test for issue 717.

Functions

static constexpr auto f1(std::false_type)#
static constexpr auto f2(std::false_type)#

Variables

static constexpr int v1 = 42#
static constexpr int v2 = 42#

C++ Function Lookup#

void fNoexcept() noexcept#
void fFinal() final#
void fOverride() override#

This one should actually have [[myattr]] but Doxygen seems to not put attributes into the XML:

void fAttr()#
void fFInit() = default#
auto fTrailing() -> int#
void fInit(int arg = 42)#
void fPlain(int arg)#
void fPtr(int *arg)#
void fLRef(int &arg)#
void fRRef(int &&arg)#
template<typename ...T>
void fParamPack(T... arg)#
void fMemPtr(int A::* arg)#
void fParen(void (*arg)())#
void fParenPlain(void (*arg)(int argInner))#

Doxygen xrefsect#

A few examples of xrefsect items support.

Functions

int unimplemented(void)#

An example of using Doxygen’s todo command.

Todo:

Implement this function.

void buggy_function(int param)#

An example of using Doxygen’s bug and test commands.

Bug:

Does not work yet.

Test:

Add proper unit testing first.

void old_function(void)#

An example of using Doxygen’s deprecated command.

Deprecated:

Should not be used on new code.

void sample_xrefitem_function(void)#

An example of a custom Doxygen xrefitem declared as an ALIAS.

xref Sample:

This text shows up in the xref output.

Doxygen simplesect#

Functions

template<typename T1, typename T2>
void f(int a, float b, std::string c)#

See also

see, f_raw

See also

sa, f_raw

Remark

remark, 1

Remark

remark, 2

Remark

remarks, 1

Remark

remarks, 2

par, something

Note

note, be careful

Warning

warning, don’t do this

Pre:

stuff must be correct

Pre:

more stuff must be correct

Post:

stuff will be nice

Post:

more stuff will be nice

Returns:

nothing