Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qoverload.h File Reference

(4842cc176881ae22e14ca193fba46c6a04d09530)

#include <QtCore/qtconfigmacros.h>
+ Include dependency graph for qoverload.h:

Go to the source code of this file.

Classes

struct  QNonConstOverload< Args >
 
struct  QConstOverload< Args >
 
struct  QOverload< Args >
 

Macros

#define QT_VA_ARGS_CHOOSE(_1, _2, _3, _4, _5, _6, _7, _8, _9, N, ...)   N
 
#define QT_VA_ARGS_EXPAND(...)   __VA_ARGS__
 
#define QT_VA_ARGS_COUNT(...)   QT_VA_ARGS_EXPAND(QT_VA_ARGS_CHOOSE(__VA_ARGS__, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0))
 
#define QT_OVERLOADED_MACRO_EXPAND(MACRO, ARGC)   MACRO##_##ARGC
 
#define QT_OVERLOADED_MACRO_IMP(MACRO, ARGC)   QT_OVERLOADED_MACRO_EXPAND(MACRO, ARGC)
 
#define QT_OVERLOADED_MACRO(MACRO, ...)   QT_VA_ARGS_EXPAND(QT_OVERLOADED_MACRO_IMP(MACRO, QT_VA_ARGS_COUNT(__VA_ARGS__))(__VA_ARGS__))
 

Variables

template<typename... Args>
constexpr QOverload< Args... > qOverload = {}
 
template<typename... Args>
constexpr QConstOverload< Args... > qConstOverload = {}
 
template<typename... Args>
constexpr QNonConstOverload< Args... > qNonConstOverload = {}
 

Macro Definition Documentation

◆ QT_OVERLOADED_MACRO

#define QT_OVERLOADED_MACRO ( MACRO,
... )   QT_VA_ARGS_EXPAND(QT_OVERLOADED_MACRO_IMP(MACRO, QT_VA_ARGS_COUNT(__VA_ARGS__))(__VA_ARGS__))

Definition at line 76 of file qoverload.h.

◆ QT_OVERLOADED_MACRO_EXPAND

#define QT_OVERLOADED_MACRO_EXPAND ( MACRO,
ARGC )   MACRO##_##ARGC

Definition at line 74 of file qoverload.h.

◆ QT_OVERLOADED_MACRO_IMP

#define QT_OVERLOADED_MACRO_IMP ( MACRO,
ARGC )   QT_OVERLOADED_MACRO_EXPAND(MACRO, ARGC)

Definition at line 75 of file qoverload.h.

◆ QT_VA_ARGS_CHOOSE

#define QT_VA_ARGS_CHOOSE ( _1,
_2,
_3,
_4,
_5,
_6,
_7,
_8,
_9,
N,
... )   N

Definition at line 71 of file qoverload.h.

◆ QT_VA_ARGS_COUNT

#define QT_VA_ARGS_COUNT ( ...)    QT_VA_ARGS_EXPAND(QT_VA_ARGS_CHOOSE(__VA_ARGS__, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0))

Definition at line 73 of file qoverload.h.

◆ QT_VA_ARGS_EXPAND

#define QT_VA_ARGS_EXPAND ( ...)    __VA_ARGS__

Definition at line 72 of file qoverload.h.

Variable Documentation

◆ qConstOverload

template<typename... Args>
constexpr QConstOverload<Args...> qConstOverload = {}
inlineconstexpr

Definition at line 66 of file qoverload.h.

◆ qNonConstOverload

template<typename... Args>
constexpr QNonConstOverload<Args...> qNonConstOverload = {}
inlineconstexpr

Definition at line 67 of file qoverload.h.

◆ qOverload

template<typename... Args>
constexpr QOverload<Args...> qOverload = {}
inlineconstexpr

Definition at line 65 of file qoverload.h.