63 bool isVirtual()
const{
return constructor_ ==
nullptr;}
70 void addToRegistry()
const;
83 Object* getDefaultObject()
const;
107 setParent(&T::staticType);
123 typename std::enable_if<std::is_abstract<T>::value>::type setConstructor() {
124 setConstructor(
nullptr);
130 typedef T* (*FResolveClsSpec)(StringView value);
131 static_assert(std::is_same<
decltype(&T::Resolve), FResolveClsSpec>::value,
"T must have Resolve method with signature T* (StringView value)");
132 setResolve(
reinterpret_cast<FResolve
>(&T::Resolve));
137 FConstructor constructor_{
nullptr};
138 FResolve resolve_{
nullptr};