blob: eace39e922a69f34cf2d25b96bf85675c6af7a0f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#pragma once
#define DELEGATE(OBJ, METHOD, METHOD_AS) \
template <typename... Args> decltype(auto) METHOD_AS(Args &&...args) { \
return OBJ->METHOD(std::forward<Args>(args)...); \
}
#define DEFINE_SETTER(METHOD, PROPERTY) \
template <typename Arg> void METHOD(Arg val) { PROPERTY = val; }
#define DEFINE_GETTER(METHOD, EXPR) \
decltype(auto) METHOD() { return EXPR; }
#define DEFINE_FETCHER(TYPE, NAME) \
void set_##NAME##_fetcher(const std::function<TYPE> &fetcher) { \
fetch_##NAME = fetcher; \
} \
std::function<qsizetype()> fetch_##NAME = []() { return -1; };
|