It turns out that it is bad practice to throw exceptions in destructors. With C++11 destructors are implicitly noexcept(true)
, so if an exception occurs the program terminates. LuaBind uses exceptions in destructors, so on my modern compiler the program terminated. Editing the method signature to:
~proxy_member_void_caller() noexcept(false) {}
allows you to catch exceptions from LuaBind in c++11.