UserdataMetatable() { addStaticFunction("__gc", &class_userdata::destructor<ObjectWrapperBase>); KAGUYA_STATIC_ASSERT(is_registerable<class_type>::value || !traits::is_std_vector<class_type>::value, "std::vector is binding to lua-table by default.If you wants register for std::vector yourself," "please define KAGUYA_NO_STD_VECTOR_TO_TABLE"); KAGUYA_STATIC_ASSERT(is_registerable<class_type>::value || !traits::is_std_map<class_type>::value, "std::map is binding to lua-table by default.If you wants register for std::map yourself," "please define KAGUYA_NO_STD_MAP_TO_TABLE"); //can not register push specialized class KAGUYA_STATIC_ASSERT(is_registerable<class_type>::value, "Can not register specialized of type conversion class. e.g. std::tuple"); }
ClassMetatable& addStaticMember(const char* name, Fun f) { return addStaticFunction(name, f); }