20,741
edits
(→A standard interface for mapping C++ classes to Nasal objects (Status 2013: implemented in cppbind): depreciated due to Tom's cppbind) |
|||
Line 5: | Line 5: | ||
As of 03/2013, this article should be considered depreciated, we have a new C++-based API for exposing C/C++ functions/data structures to Nasal and vice versa in [https://gitorious.org/fg/simgear/trees/next/simgear/nasal/cppbind $SG_SRC/nasal/cppbind]. Usually, there should be no need to use the bare Nasal APIs anymore for exposing functions/data to Nasal or Nasal-space types to C++, except for people working on the '''cppbind''' framework itself. | As of 03/2013, this article should be considered depreciated, we have a new C++-based API for exposing C/C++ functions/data structures to Nasal and vice versa in [https://gitorious.org/fg/simgear/trees/next/simgear/nasal/cppbind $SG_SRC/nasal/cppbind]. Usually, there should be no need to use the bare Nasal APIs anymore for exposing functions/data to Nasal or Nasal-space types to C++, except for people working on the '''cppbind''' framework itself. | ||
The cppbind framework is much more generic and high level than the bare APIs, it includes unit testing support and makes use of modern C++ features like templates and STL support, including SimGear specific types like SGPath etc, its overhead is fairly small (not just performance, but also LoC to create new bindings). | The cppbind framework is much more generic and high level than the bare APIs documented here, it includes unit testing support and makes use of modern C++ features like templates and STL support, including SimGear specific types like SGPath/SGGeod etc, its overhead is fairly small (not just performance, but also LoC to create new bindings). | ||
The cppbind framework is already extensively used by the [[Canvas]] system, which | The cppbind framework is already extensively used by the [[Canvas]] system and the NasalPositioned bindings, both of which are a good place to look for code examples. | ||
== Scope == | == Scope == |