
I can't see the benefits or advantage of it, what calling c++ functions in this way?
The advantage is essentially that some part of your code does not need to be compiled. The eval function is as similar as possible to its equivalent in interpreted languages, with the main difference being that you have to briefly mention the name of functions you want to use from within the script (in an eval header). For example, one use case may be a template library (i.e. textual templates). So, you might wish to have a generic html template, which refers to a Person's first name, last name, age and so on. In your compiled code, you might have a Person class to store this information. Normally, you'd have to pass in all the details individually (or in some special aggregated class/struct depending on the template library used) as far as I know. With the foundations provided by this library, you can pass in a Person instance; the actual Person class would remain completly unmodified as well. Now, you could easily change the templates without recompilation. Furthermore, if your eval header includes most of the functions in your Person class, the compiled code doesn't have to worry about what it passes to the template (i.e. the template can pull the age, or the name, as needed). Christian