スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

C++でも工夫次第でevalは可能と思われます。

C++でeval関数のような操作をしたい、という要望は多くあるようです。
Web上の情報をたよりに以下のようなものの作成に成功しました。
「テキストファイルに記述した変数入りの文字列式を読み込み
 プログラム実行中に変化する変数ごとに式の値を出力する」

eq1.txtというテキストファイルに
 sin(x*3.1416/2)
と書いた場合の結果です。

boost_spirit_test02.jpg
(円周率入力し間違えました。恥ずかしい...)

どなたかの役に立つかもしれないので僭越ながらソースをアップします。
(とりあえずできただけで解説はできないので各自で解読してください。)
eval_mitaina.txt

とりあえず上記ソースでは、関数はSIN関数、変数は「x」しか使えませんが
同様な方法で他の各種関数、任意変数文字を使えるようにできると思います。
(他にもっとスマートな方法があるかもしれませんが。)
自作関数も同様に使用可能にできると思います。


参考(超感謝&リスペクト):
boost::spiritっちゃえ!
boost ライブラリを使ってみる


スポンサーサイト

コメントの投稿

非公開コメント

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
プロフィール

uglab

Author:uglab
ソフト開発会社

【Twitter】
フォローお願いします

【You tube動画一覧】
チャンネル登録お願いします


最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
検索フォーム
スポンサードリンク
    【スポンサードリンク】

リンク
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。