私はSeleneを使用して、Luaからアクセス可能なC++クラスと関数をラップしています。LuaでアクセスできるようにSeleneで列挙をラップします
:私は1最初の試みをLuaの中に「Motion.DOWN」のようなものを言うし、得ることができるように
enum class Motion {
UP = 0,
DOWN = 1,
REPEAT = 2,
};
私はLuaの状態の内部でこれをラップしたい:私は、単純な列挙型クラスを持っています
void register(sel::State &L) {
L["Motion"].SetClass<Motion>();
}
コンパイラはクラスではないと不平を言っています。
...
/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,
...
第二の試み:
void register(sel::State &L) {
L["Motion"] = Motion;
}
これは、有効なC++はない "と期待して一次式" に関するエラーを取得するには、コンパイルされません。 &Motion
を使用しようとすると同じエラーが発生します。
これを行う方法はありますか?好ましくは、すべての列挙定数を再度リストアップすることに関与しないもの。