require("import") -- the import fn import("smart_pointer_inherit") -- import lib into global spi=smart_pointer_inherit --alias -- catching undefined variables local env = _ENV -- Lua 5.2 if not env then env = getfenv () end -- Lua 5.1 setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end}) der = spi.Derived(7) ptr = spi.SmartDerived(der) assert(ptr.val == 7) assert(ptr:value() == 7) assert(ptr:value2() == 7) assert(ptr:value3() == 7) assert(ptr:valuehide() == -1)