adresinden erişilebilir. Selene kullanıyorum. C++ sınıflarını ve Lua'dan erişilebilecek işlevleri sarmak için kullanıyorum.Selen'de bir enum'u Lua
: Ben 1.İlk girişim Lua "Motion.DOWN" gibi bir şey demek ve almak böylece
enum class Motion {
UP = 0,
DOWN = 1,
REPEAT = 2,
};
Bir Lua devlet içinde bu sarmak istiyorum: Ben basit bir enum sınıf var
void register(sel::State &L) {
L["Motion"].SetClass<Motion>();
}
Derleyici, bir sınıf olmadığından şikayetçi.
...
/source/desktop/../external/Selene/include/selene/Class.h:41:10:
error: creating pointer to member of non-class type 'Motion'
void _register_member(lua_State *state,
...
İkinci girişimi:
void register(sel::State &L) {
L["Motion"] = Motion;
}
Bu, derlemek "birincil ifade bekleniyor" hakkında hataları almaz, bu ++ geçerli C değil. &Motion
kullanmayı denediğimde aynı hataları alıyorum.
Bunu yapmanın bir yolu var mı? Tercihen, tüm enum sabitlerini tekrar listelemeyi gerektirmeyen bir.