Обтекание динамических массивов C ++ в языках сценариев, написанных на C ++ - PullRequest
0 голосов
/ 03 февраля 2011

У меня есть минимальный язык сценариев (без массивов), встроенный в C ++, который используется как клей для моделирования Монте-Карло. Я использую библиотеку обернутых функций c / c ++ для расширения моего языка, обычно что-то вроде этого:

extern "C" double myWrappedMathFunction(double argument){...}

Теперь я хотел бы добавить динамические массивы и обернуть некоторые функции из контейнера C ++ STL Vector. Моя идея состоит в том, чтобы создавать векторы STL, используя вызовы функций из моего языка сценариев. Все векторы были бы двойниками. Например, вызов vecIni (vectorName) создаст пустой (или некоторое начальное измерение по умолчанию) вектор с именем vectorName.

Как лучше всего построить эти векторы на языке сценариев, написанном на C ++?

1 Ответ

1 голос
/ 03 февраля 2011

Лучший способ - использовать std::vector для представления динамических массивов.Возможно, вы можете добавить некоторый синтаксис для представления литералов массива на языке сценариев:

v1 = {3.4, 5.67} // an array initialized with two values.
v2 = {} // an empty array.

Приведенный выше сценарий должен переводиться в следующий код C ++:

std::vector<double> v1;
v1.push_back(3.4);
v1.push_back(5.67);

std::vector<double> v2;
...