Skip to content

OpenXRay/luabind-deboostified

This branch is 73 commits ahead of decimad/luabind-deboostified:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

65fc3d5 · Mar 8, 2025
Mar 1, 2013
Sep 3, 2017
Mar 8, 2025
Mar 8, 2025
Jul 24, 2021
Jul 4, 2017
Sep 3, 2017
Feb 21, 2012
Nov 29, 2023
Sep 3, 2017
Apr 15, 2003
Dec 14, 2017

Repository files navigation

luabind

This is a customized luabind fork that's used by X-Ray Engine. Comparing to the old version (presumably beta7-devel-rc4) previously used in X-Ray, this version speeds up xrGame (the most heavy engine module) compilation by about 100%.

Currently, at least the following compilers are supported:

  • MSVC 2015
  • Clang/LLVM 3.6.0
  • G++ 4.9

If you can confirm support on another platform, please let me know!

Create Lua bindings for your C++ code easily - my improvements

  • Variadic templates.
  • Got rid of the arrays created in invoke.
  • All boost removed.
  • No backward compatibility to any old or faulty (MS) compilers.
  • This is 24mb of Intellisense db versus close to 90mb with original luabind, also Intellisense is not crippled by boost preprocessor usage.

Important: This is not drop in replacable.

  • The template parameters to class class_ work a bit differently to the original (Wrapper and Holder have a specific index, if you don't want one of them, use null_type and/or no_bases)
  • The policies are not implemented as functions with a wrapped integer argument, they're aliases to policy lists containing exactly the one respective policy
  • The error callback is no longer the function that is pushed as pcall's error handler, but is instead called to push the error handler onto the stack
  • Exceptions thrown by luabind will now carry the error message, it no longer has to be pulled from the lua stack separately
  • Since the requirement to Boost.Optional has been dropped, object_cast_nothrow now has a mandatory default argument that is returned when the cast failed. Use boost::optional() for that to get the old behavior

Packages

No packages published

Languages

  • C++ 98.7%
  • CMake 1.3%