Open shewer opened 10 months ago
我认为必要性不大。shared_ptr<LuaObj>
是方便 C++ 传递或存储任意 lua 对象的类型,本身只应该从 LuaObj::todata()
得到。满足这个约定的情况下不可能得到空的 pointer。
LuaObj
已经通过 private 的方式禁止私自构造了,但是的确没有防止 {}
这种方式得到一个空指针。如果做得更好的话,可以用类似 https://stackoverflow.com/questions/41955232/shared-ptr-that-cannot-be-null 弄一个 shared_reference<LuaObj>
,这样 {}
就会不能通过编译。
@hchunhui
1 LuaObj::pushdata(L, {} ); // 是否要避開 pass or pushnil
2 LuaObj 增加 nildata type