AnonymousProgrammerLandau
AnonymousProgrammerLandau
Regarding https://github.com/jeremyong/Selene/pull/105#issuecomment-147492598: I see two kinds of lambdas in use. They differ only in the type used to index tables: `string` or `int`. To replace std::function for `_get` and `_put`...
To get rid of `std::function` for the member variable `_functor` seems not that easy. It stores all parameters for the call to be invoked and therefore has to be dynamically...
I encountered the same problem with the use of metatables for lightuserdata. Tests to show that are [prepared](https://github.com/AnonymousProgrammerLandau/Selene/tree/lightuserdata_metatables) and the causing source locations are marked with [FIXME](https://github.com/AnonymousProgrammerLandau/Selene/blob/lightuserdata_metatables/include/selene/primitives.h#L291) comments. @lucklove I...
@lucklove Suppose you have registered some C++ functions: - `void useVal(T)` - `void useRef(T&)` - `T make()` - `T& global()` As Selene uses the same metatable for both `T` and...
@deadric Possible workaround: If you do not _need_ reference semantics, you might get around the bug by copying. Change `Obj2& Obj::get_obj2()` to `Obj2 Obj::get_obj2()`, so that Selene copies the returned...
To find code that can cause the bug, [disable push for references and pointers](https://github.com/AnonymousProgrammerLandau/Selene/commit/da26721e2fe3ed27fe819f057bd1301a54c61544) in `primitives.h`.
Work in progress at: https://github.com/AnonymousProgrammerLandau/Selene/tree/RemoveSpecializationsForVoid The refactoring opens space for further improvements, like removing the need to store all kinds of callables through `std::function`.
The code in Selector.h you are referring to seems to stem from the tagged version v0.4. Since then there have been corrections in master. One fixed issue I remember was...
To fulfill the two new test cases, I started out to correct the order of declarations and definitions for all overloads of `_push`[1] relative to the definition of `_push_n`[2]. (`_push_n`...
Existing code like `int x = selector["myVar"]` would pick up `sel::Selector::operator T&` instead of `sel::Selector::operator lua_integer` if `lua_interger != int`. A more stable option seems to be to actually provide...