2011-02-03 11 views
0

モンテカルロシミュレーションのグルーとして使用される、C++で構築された最小限のスクリプト言語(配列なし)を使用しています。C++で記述されたスクリプト言語でのC++動的配列のラップ

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

さて、私は動的配列を追加し、C++ STLのベクトルコンテナから一部の機能をラップたい:私は普通の範囲に包まれたC/C++関数のライブラリを使用する私の言語、このようなものを作ります。私の考えは、スクリプト言語の関数呼び出しを使ってSTLベクトルを構築することです。すべてのベクトルは2倍です。たとえば、vecIni(vectorName)を呼び出すと、vectorNameという名前の空の(または初期のデフォルトの次元)ベクトルが作成されます。

C++でコード化されたスクリプト言語でこれらのベクトルを構築するにはどうすればよいでしょうか?

答えて

1

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; 
+0

感謝。しかし、私はもっと野心的なものを試していました。私のスクリプト言語からの関数呼び出しをv2をstd :: vectorとして宣言し、場合によってはそれをいくつかの値で初期化することはできますか?例えば、10個の値「extern」Cを有する配列を初期化する。\t \t(int i = 0; i <9; i ++){arg [i] = 0;明らかにv2が宣言されていないので、vecIni(v2)をコールすると範囲外のエラーが発生します。 –

+0

'{}'構文の代わりに@anton skvortsが 'vector'という型を導入し、文字列 'と' double'です。 –

関連する問題