История изменений
Исправление
kvpfs,
(текущая версия)
:
Можно одним препроцессором:
$ cat file.hpp
HIDE(
class Qwerty
{
public:
)
DECL(void, fn, ())
DECL(void, fn2, ())
DECL(void, fn3, ())
HIDE(
};
)
Далее приинклуживаем в нужных местах file.hpp с нужными HIDE и DECL, условно:
static map &get() {
#define HIDE(...)
#define DECL(ret, name, args) {#name, name}
static map m{
#include "file.hpp"
};
return m;
#undef HIDE
#undef DECL
}
Исправление
kvpfs,
:
Можно одним препроцессором:
$ cat file.hpp
HIDE(
class Qwerty
{
public:
)
DECL(void, fn, ());
DECL(void, fn2, ());
DECL(void, fn3, ());
HIDE(
};
)
Далее приинклуживаем в нужных местах file.hpp с нужными HIDE и DECL, условно:
static map &get() {
#define HIDE(...)
#define DECL(ret, name, args) {#name, name}
static map m{
#include "file.hpp"
};
return m;
#undef HIDE
#undef DECL
}
Исходная версия
kvpfs,
:
Можно одним препроцессором:
$ cat file.hpp
HIDE(
class Qwerty
{
public:
)
DECL(void, fn, ());
DECL(void, fn2, ());
DECL(void, fn3, ());
HIDE(
};
)
Далее приинклуживаем в нужных местах file.hpp с нужными HIDE и DECL, условно:
static map &get() {
#define HIDE(...)
#define DECL(ret, name, args) {#name, name}
static map m{
#include "file.hpp"
};
return m;
#undef HIDE
#undef DECL
}