kirill_igum
kirill_igum

Reputation: 3983

build and run c++ within c++ -- c++ scripts (instead of lua)

Currently, I embed lua in my c++ code.

I wonder if the same is possible with c++. That way I can pass objects and use libraries within the script. to do this, I think I would need the following from the master c++ code:

  1. execute the running of the script
  2. compile the script
  3. run the script
  4. the script passes pointer to it's data objects
  5. the script is done and the program uses the data objects.

is this possible? small example?

For me it is useful as I ran science calculation that I don't want to stop but i want to add functionality on the fly. I also see this being useful for servers in c++ that don't want to shut down but want to make a change.

Upvotes: 0

Views: 374

Answers (1)

BigBoss
BigBoss

Reputation: 6914

You may choose to use some kind of C++ interpreter but they can't do every thing. C++ is one of the hardest to implement(if not that hardest) languages. Just think about macros, templates and every other thing that make C++ as powerful as we know they are really hard to parse and understand and beside all of that we have optimization that create such fast and thin codes for us, so how an interpreter can be such powerful and understand all of this? Even best known compilers may fail to understand all of the standard or at least have errors for understanding complicated C++ codes. In one of my projects that heavily use templates using MSVC 2010, it take about 10 minutes to compile the code! So interpreters usually simplify their task and only support a subset of full C++, so if you are cool with this use some interpreter. I never used one of them but I heard cint is good.

The other option is you have a free compiler like g++ and actually compile your code into some kind of shared library and then load it dynamically and call some functions from it based on some kind of configuration.

Upvotes: 2

Related Questions