Version 3 (modified by 15 years ago) ( diff ) | ,
---|
Language Binding: C++
The language binding layer takes the interface description given as a binding DSEL and creates the corresponding meta-object binding in C++. This is both generating the C++ code, through template instantiations. And creating an instance of the meta-object binding for other languages to use.
Interface DSEL
A domain specific embeded language (DSEL) describes and defines the exposed C++ interfaces.
- namespace_, module
- Define a namespace scope for definitions.
- def
- Declare a binding of a static or global.
- class_
- Declare a binding class.
- class_.def
- Declare either a value or function member of the class.
- class_.def_readwrite
- A readable and writable property.
- class_.def_readonly
- A readable, only, property.
- class_.property
- A custom read and/or write property.
- class_.enum_
- An enumeration within the class.
- class_.scope
- Begin declarations within the class scope.
- constructor
- Define a constructor for the class.
- self, const_self, other
- Reference to arguments of our own class.
- tostring
- Printable representation of the instance.
- enum_
- Scope level enumeration.
- value
- Value in an enumeration.
- operators
- “+”, “-”, “*”, “/”, “==”, “<”, “<=”
- Return value policies
-
- adopt – Binding language takes ownership of the result object instance.
- dependency – Extends the lifetime of arguments to the result lifetime.
- return_reference_to – Indicates that the result is one of the arguments.
- copy – Indicates that a result should be copied when returned.
- discard_result – Ignores the result, making the exposed function return void.
- Parameter policies
-
- out_value – Defines arguments that will also be returned, either as part of the result or through a reference argument.
- pure_out_value – An out_value which is not exposed in the function binding.
For C++ the goal of the binding DSEL is to generate the primary meta-object binding that other languages will use to bind to.
Note:
See TracWiki
for help on using the wiki.