asbind20: C++20 AngelScript binding library =========================================== **asbind20** is a C++20 `AngelScript `_ binding library powered by templates. Although the interface of AngelScript is very friendly to C++ compared to most binding APIs from other script languages, it still needs many additional proxy functions, e.g., when binding a constructor. However, most of these proxies have similar logic, so they can be generated by some template tricks. Besides, this library provides tools for easily calling a script function, as well as RAII helpers for managing lifetime of AngelScript objects. In general, this library aims to automate everything that can be generated by template meta-programming. The name and API design are inspired by the famous `pybind11 library `_. Core Features ------------- - Conveniently bind C++ functions / classes to AngelScript, including auto-generated wrappers for constructors / factories / operators. - Tools for passing arguments to and receiving return value from script functions, without manually choosing the correct function for different types. - Generating a generic wrapper for functions of any parameter count at compile-time, without using any macro. - RAII tools for managing lifetime of script objects. - Container for storing script objects. License ------- This library is licensed under `the MIT License `_. Contents: .. toctree:: :maxdepth: 1 changelog .. toctree:: :maxdepth: 2 :caption: Getting Started start .. toctree:: :maxdepth: 2 :caption: Registering Application Interfaces object_type global aux_interface .. toctree:: :maxdepth: 2 :caption: Using AngelScript Interfaces invoke container compare .. toctree:: :maxdepth: 1 :caption: Utilities utility .. toctree:: :maxdepth: 1 :caption: Advanced Topics advanced/custom_conv_rule advanced/init_list advanced/script_type advanced/gc advanced/generic advanced/threading .. toctree:: :maxdepth: 1 :caption: Extra Resources extra/troubleshooting extra/known_issue contribute/full_build