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