Здравствуйте, tapatoon, Вы писали:
T>Имеем класс вроде такого
T>Менять его описание не можем. Может содержать виртуальные функции, наследоваться в т.ч. виртуально и т.п.
T>Хочу для каждого мембера (для методов не надо) задать пару атрибутов в компайлтайме и когда нужно их получать.
T>Есть идеи как лучше сделать?
Например так:
https://godbolt.org/z/c6YWGc58d
struct A {
string s;
int i;
};
template<auto>struct Info;
template<>struct Info<&A::s> { enum { id=1 }; static const char* name() { return "string"; } };
template<>struct Info<&A::i> { enum { id=2 }; static const char* name() { return "integer"; } };