Add Lua typecast from C++ vector to C-Array

This is useful for MIDI bytes amongst other things
This commit is contained in:
Robin Gareus 2019-12-01 21:32:10 +01:00
parent 5fb83da69c
commit 5e1a73a28c
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
3 changed files with 20 additions and 14 deletions

View file

@ -1148,6 +1148,17 @@ struct CFunc
if (!t) { return luaL_error (L, "cannot derefencee shared_ptr"); }
return tableToListHelper<T, C> (L, t->get());
}
//--------------------------------------------------------------------------
template <class T, class C>
static int vectorToArray (lua_State *L)
{
C * const t = Userdata::get<C> (L, 1, false);
T * a = &((*t)[0]);
Stack <T*>::push (L, a);
return 1;
}
//--------------------------------------------------------------------------
template <class T, class C>

View file

@ -1938,11 +1938,11 @@ public:
return beginConstStdVector<T> (name)
.addVoidConstructor ()
.addFunction ("push_back", (void (LT::*)(const T&))&LT::push_back)
.addFunction ("clear", (void (LT::*)())&LT::clear)
.addExtCFunction ("to_array", &CFunc::vectorToArray<T, LT>)
.addExtCFunction ("add", &CFunc::tableToList<T, LT>);
}
//----------------------------------------------------------------------------
template <class T>