67 bool isVirtual()
const{
return constructor_ ==
nullptr;}
74 void addToRegistry()
const;
87 Object* getDefaultObject()
const;
111 setParent(&T::staticType);
127 typename std::enable_if<std::is_abstract<T>::value>::type setConstructor() {
128 setConstructor(
nullptr);
134 typedef T* (*FResolveClsSpec)(StringView value);
135 static_assert(std::is_same<
decltype(&T::Resolve), FResolveClsSpec>::value,
"T must have Resolve method with signature T* (StringView value)");
136 setResolve(
reinterpret_cast<FResolve
>(&T::Resolve));
142 void getAllProperties(std::vector<Property*>& out,
bool overwriteSameName =
false)
const;
145 FConstructor constructor_{
nullptr};
146 FResolve resolve_{
nullptr};