Foo struct
Pathological cases of function attributes.
Public static functions
- static auto constexprStaticFunction() -> int constexpr
- Constexpr before static.
- static auto constevalStaticFunction() -> int consteval
- Consteval before static.
- static auto staticConstexprFunction() -> int constexpr
- Constexpr after static.
- static auto staticConstevalFunction() -> int consteval
- Consteval after static.
Constructors, destructors, conversion operators
Public functions
- auto operator=(const Foo&) -> Foo& deleted noexcept(…)
- Combined conditional noexcept and delete.
- void foo() const pure virtual noexcept(…)
- Const, conditional noexcept and a pure virtual.
- auto bar() -> Foo& constexpr noexcept
- Random type and constexpr together.
- auto baz() -> decltype(auto) constexpr noexcept
- decltype(auto) and constexpr together
Function documentation
static int Foo:: constexprStaticFunction() constexpr
Constexpr before static.
1.8.18 puts both constexpr
and static
into the return type so I have to remove them. WHY! HOW IS THAT USEFUL IN ANY WAY?!
static int Foo:: constevalStaticFunction() consteval
Consteval before static.
Same as above, but for C++20's consteval.
static int Foo:: staticConstexprFunction() constexpr
Constexpr after static.
In this case, static
is not in the return type. FFS.
static int Foo:: staticConstevalFunction() consteval
Consteval after static.
Same as above, but for C++20's consteval.
void Foo:: foo() const pure virtual noexcept(…)
Const, conditional noexcept and a pure virtual.
Details.
decltype(auto) Foo:: baz() constexpr noexcept
decltype(auto) and constexpr together
For some reason, due to decltype(auto), Doxygen swaps the order, causing the constexpr to be hard to detect. Don't even ask how it handles trailing return types. It's just HORRIBLE.