4

標準の C++ コンテナーに格納された大量のデータを作成する C++ プログラムがあります。バイナリ プログラム内から C++ インタープリターを起動し、REPL セッションを開いてそのデータを操作できるようにしたいと考えています。できれば、最新の C++11 構文を使用したいと考えています。それは実現可能ですか?Visual Studio 環境での開発は可能ですか?

Ch について聞いたことがありますが、C++ 98 構文の一部しか実装していないようです。

Cling について聞いたことはありますが、私の記憶がよければ、Cling のトップ開発者の 1 人が Google TechTalks 2012 でこの質問に否定的に答えました。それは正確ですか?

4

2 に答える 2

1

シェルプロンプトにはさらに別のREPLがあります。通常のC++ボイラープレートでコードスニペットを飾り、コンパイラを呼び出すbashスクリプトです。AWKのように機能し、範囲/FP式を処理するための追加のライブラリがいくつかあります。埋め込みが簡単かどうかはわかりません。リンク。間もなく、大きなメモリテーブル(dbのような)の処理が組み込まれることを知っています。ドキュメントからの例:

//  Classic pipe. Alogorithms are from std:: 
scc 'vector<int>{3,1,2,3} | sort | unique | reverse'
{3, 2, 1}

//  Assign 42 to 2..5
scc 'vint V=range(0,9);   range(V/2, V/5) = 42;  V'
{0, 1, 42, 42, 42, 5, 6, 7, 8, 9}

//  Find (brute force algorithm) maximum of  `cos(x)` in interval: `8 < x < 9`:
scc 'range(8, 9, 0.01) * cos  || max'
-0.1455

//  Integrate sin(x) from 0 to pi
scc 'auto d=0.001;  (range(0,pi,d) * sin || add) * d'
2
于 2012-12-16T08:42:37.560 に答える
1

インタープリターではありませんが、RuntimeCompiledC++のコンソールはニーズに合うかもしれません (より適切な REPL エディターとして機能するには少し努力が必要かもしれません)。特に、システムに組み込まれているコンパイラーを使用するため、C++ を取得できます。 11 (ただし、Windows では、C++11 のサポートを強化するために、MSVC を介して GCC/Clang に強制することをお勧めします)。

追加のボーナスとして、解釈されたコードよりもかなり高速に実行されます。

于 2012-12-16T10:02:26.023 に答える