C++の機能に晒されるスクリプティングシステムの自己記述するパラメータ型

StackOverflow https://stackoverflow.com/questions/2039152

  •  19-09-2019
  •  | 
  •  

質問

C++規則エンジンを定義のルールをXMLそれぞれのルールを突き詰めれば"の場合、X、YがXの試験およびYの行動します。C++コードの機能'に使用できる試験の動作としてのクラスの各機能'、それぞれの"run(args)"法。れかのパラメータ。

この作品です。

でも、別のツールのための保存ユーザーの手作XML;ルールのエンジンの目的は非ます。ツールのニーズを知るすべての機能がご利用いて必要な入力パラメータ。何が最良の方法を考える?していると考えられるカップルの可能性

  1. コンフィグファイルを記述する機能"とそのパラメータの読み込みによるツールです。これは、実際のC++コードで実行引数の検証ものの、C++、XMLであることが保証されていないに同期-プログラマーが変更C++を忘れると、更新、XMLへのバグの検証
  2. 各機能クラスでは方法を記述することができる。何らかの工具負荷のC++クラス...このことは簡単に言語支援の反射がmessier C++、い信頼性確保をDLLと全ての機能は何か。この余分なオーバーヘッド。

この意味での自然のC++す。

編集:のタイトルの記述?思います。

役に立ちましたか?

解決

IDL -

第三の方法があります。

は、クライアントサーバーアプリケーションを持っている、とあなたは、ユーザーがクライアントAPIを使用してアプリケーションを書くことができますので、あなたは、クライアントとサーバー上に展開することができますラッパークラスを生成し、処理がサーバー上で発生するコードジェネレータを持っている想像してみて。..これは、典型的なRPCのシナリオであり、DCE-RPC、ONC-RPC、CORBA、COMなどで使用されます。

ここでのトリックはインタフェース定義言語で行われ、クライアントが呼び出すことができるメソッドのシグネチャを定義することです。あなたは発電機を介して実行し、それはあなたが使用するクライアント用にコンパイルするC ++クラスを生成し、これが困難である必要はありませんが、それは、クライアント/サーバAPIのソースです。

XMLは、IDLであるように、

あなたのケースでは、それが聞こえます。あなたはXMLを取り、あなたのコードが公開する機能を記述したC ++ヘッダを生成ツールを作成することができます。あなたは本当にcppのファイルを生成する必要はありません(あなたができる)が、その容易なだけでヘッダを生成するので、新しい機能/パラメータが追加され、プログラマは、実装を更新することを忘れないことができます - それは、ヘッダーだけ一度コンパイルされません再生成されています。

あなただけの関数定義よりもそこに多くのがある場合は、既存のC ++のヘッダーにインクルードされるヘッダを生成することができます。

だから、 - それは私の提案だ、#3:あなたの決定的なXML署名から定義を生成

他のヒント

もう一つの方法:

  • 追加の制約の引数種類の均一に機能する。
  • 定義している最大の引数の数
  • の種類の優先順位につ double converrtsる String が逆に

していま

void f(int a1) .. f(int a1 .. int aN)
void f(double a1) .. f(double a1 .. double aN)
..
void f(T a1) .. 

その他のコンクリートデータタイプのような文字列、なすものではありません。

メリット:

  • 変動固定署名および正
  • できるだけ"を提供する最大級のアスレチック"タイプシグニチャー(T)
  • 作業にかかるテンプレートおよび言語の橋
  • 警告 行動f2の整数をパラメータ定義され
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top