diff options
Diffstat (limited to 'src/utils.hpp')
| -rw-r--r-- | src/utils.hpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/utils.hpp b/src/utils.hpp new file mode 100644 index 0000000..0650ac2 --- /dev/null +++ b/src/utils.hpp @@ -0,0 +1,11 @@ + +#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) \ + template <typename Arg> decltype(auto) METHOD() { return EXPR; } |
