lua-users home
lua-l archive

Re: [LuaJIT] C-API Question on meta table for C closure

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Michal Kottman, 03.09.2010 10:01:
On Fri, 2010年09月03日 at 09:49 +0200, Stefan Behnel wrote:
... I would
have expected that other functions are not impacted by a metatable that I
set on a single C function.
Is that the expected behaviour? Is there a way to define a metatable only
for a specific C function?
Citing the Lua manual (http://www.lua.org/manual/5.1/manual.html#2.8):
	Tables and full userdata have individual metatables (although
	multiple tables and userdata can share their metatables).
	Values	of all other types share one single metatable per type;
	that is, there is one single metatable for all numbers, one for
	all strings, etc.
Here, "etc." also contains functions - which means that you can have
only one metatable for functions globally. If you want to have a
callable object (which acts like a function), better create a
table/userdata and use the __call metamethod.
Ah, yes, I missed that part of the docs. Always using plain userdata and __call does the trick. Thank you both!
Stefan

AltStyle によって変換されたページ (->オリジナル) /