Я работаю над реализацией механизма отражения в C++. Все объекты в моем коде являются подклассом Object (мой собственный общий тип), который содержит статическую членную дату типа Class.Как передать указатель функции, указывающий на конструктор?
class Class{
public:
Class(const std::string &n, Object *(*c)());
protected:
std::string name; // Name for subclass
Object *(*create)(); // Pointer to creation function for subclass
};
Для любого подкласса Object со статическим данности члена класса, я хочу, чтобы иметь возможность инициализировать «создать» с указателем на конструктору этого подкласса.
Хотя это 6 лет после факта - вы должны дать много думал о том, действительно ли вы хотите реализовать свой собственный механизм размышления. Сначала рассмотрим возможность расчета для «отражения» времени компиляции с использованием шаблонов, type_traits и принципа SFINAE; затем попробуйте одну из существующих библиотек отражения C++; и только тогда я подумал бы о том, чтобы пойти на него сам. – einpoklum