I am fairly new to Lua and wanted to understand better some of the C/C++ binding mechanisms. I understand how binding by name works, but I am not clear on how “late binding” works. When I say “late binding” I refer to the mechanisms used in LuaCOM and LuaInterface for calling methods on tables which do not exist at registration time.
My assumption is that at object creation time there is some extra data stored in some table and that at runtime the call is intercepted and then forwarded to a function that acts on the function call using the data stored during object creation; but I am not getting a clear picture from the source code of the projects mentioned above.
Are my assumptions correct?
What is exactly happening under the covers?