собрать и запустить c ++ в скриптах c ++ — c ++ (вместо lua)

В настоящее время я встраиваю lua в свой код на C ++.

Интересно, возможно ли то же самое с c ++. Таким образом, я могу передавать объекты и использовать библиотеки в скрипте. для этого, я думаю, мне понадобится следующее из основного кода C ++:

  1. выполнить запуск сценария
  2. скомпилировать скрипт
  3. запустить скрипт
  4. скрипт передает указатель на свои объекты данных
  5. Сценарий выполнен, и программа использует объекты данных.

Это возможно? маленький пример?

Для меня это полезно, так как я запустил научный расчет, который я не хочу останавливать, но хочу добавить функциональность на лету. Я также считаю, что это полезно для серверов в C ++, которые не хотят выключаться, но хотят внести изменения.

0

Решение

Вы можете использовать какой-то интерпретатор C ++, но они не могут делать все. C ++ — один из самых сложных для реализации (если не так сложных) языков. Просто подумайте о макросах, шаблонах и обо всех других вещах, которые делают C ++ настолько мощным, насколько мы знаем, что их действительно сложно анализировать и понимать, и помимо всего этого у нас есть оптимизация, которая создает для нас такие быстрые и тонкие коды, так как интерпретатор может быть такой мощный и все это понимаешь? Даже самые известные компиляторы могут не понимать весь стандарт или, по крайней мере, иметь ошибки для понимания сложных кодов C ++. В одном из моих проектов, где интенсивно используются шаблоны с использованием MSVC 2010, компиляция кода занимает около 10 минут! Таким образом, интерпретаторы обычно упрощают свою задачу и поддерживают только подмножество полного C ++, поэтому, если вы не против, используйте некоторый интерпретатор. Я никогда не использовал один из них, но я слышал cint это хорошо.

Другой вариант, у вас есть бесплатный компилятор, как g++ и на самом деле скомпилировать ваш код в какую-то разделяемую библиотеку, а затем динамически загрузить ее и вызвать из нее некоторые функции, основываясь на какой-то конфигурации.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]