Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qoverload.h File Reference
#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.