問題タブ [variant]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 単純なスクリプト化された「言語」の作成-VARIANTのような値型
C ++で開発されたルールエンジンの場合、コア機能の1つは値型です。私がこれまでに持っているのは、COMスタイルのVARIANTに少し似ています。各値は、そのタイプを知っています。型変換にはいくつかのルールがありますが、少し面倒です。
事前に構築されたシステム全体を使用しなくても、これを解決するために使用できる優れたドロップイン値クラスがあるかどうか疑問に思いました。たとえば、ブーストには何かがありますか?
c++ - C++ テンプレート バリアントの型の数は制限されていますか?
バリアントがどのように実装されているかを理解しようとしています。
http://www.codeproject.com/KB/cpp/TTLTyplist.aspx
そして、私は X 型を取るバリアントを書くことができないという印象を受けています。ただし、テンプレート作成者は N を選択し、バリアントには N 未満の型しか持てません。
これは正しいです?
ありがとう!
c++ - 基本的なバリアント (およびバリアントのビジター) テンプレートを C++ で実装するには?
私は読んでみました:
しかし、バリアントがどのように実装されているかはまだわかりません。次のようなものを定義する方法の短い例を誰でも貼り付けることができますか?
ありがとう!
c++ - このC++タイプリストをバリアントに組み込む方法は?
ここ、
このc++タイプリストテンプレートのコンパイルエラーを修正するにはどうすればよいですか?
最新のC++デザインのコードを使用して、タイプリストを作成しました。
質問は今です-これをどのように取得してバリアントクラスに組み込むのですか?
c++ - Boost バリアント タイプでのディスパッチには直線的な時間がかかりますか?
boost::variant でのディスパッチはどのくらい効率的ですか?
switch ステートメントの場合、O(1) 時間しかかからないはずですが、私の知る限り、テンプレート メタプログラムは if しか生成できません。これにより、boost::variant ディスパッチが O(n) のランタイム オーバーヘッドで発生します。ここで、n = バリアントのタイプの数。
誰かがこれについて私を確認/否定/啓発できますか?
ありがとう!
windows - C++ で VARIANT 型との間で変換する簡単な方法
Visual C++ で s を操作できる、使いやすい高レベルのクラスまたはライブラリはありますか?VARIANT
double
より具体的には、POD タイプ (例: 、long
)、文字列 (例CString
)、およびコンテナー (例std::vector
) とVARIANT
s の間で変換したいと考えています。例えば:
私は (素朴に?) COM を使用する人は常にこれを行っていると想定していたので、あらゆる種類の変換を処理する単一の便利なライブラリが存在する可能性が最も高いでしょう。しかし、私が見つけることができたのは、それぞれいくつかの型を変換するさまざまなラッパー クラスの組み合わせだけです。
- POD タイプの_variant_tまたはCComVariant
- 文字列の_bstr_t、CComBSTR、またはBSTR
- 配列のCComSafeArrayまたはSAFEARRAY
VT_ARRAY | VT_I4
Visual Basic に切り替える以外に、厄介なメモリ管理とビット単位のコードのこの悪夢を回避する簡単な方法はありますか?
関連する質問:
delphi - VarIsEmpty関数とVarIsEmptyParam関数の違いは何ですか
Delphi7で作業していると、関数だけでなくVarIsEmpty
、も存在することに気づきましたVarIsEmptyParam
。
Delphiの助けはあまり説明を与えないので:
指定されたバリアントが割り当てられていないオプションのパラメーターを表す場合、VarIsEmptyParamはtrueを返します。
バリアントに他の値が含まれている場合、関数の結果はfalseになります。
誰かがこの関数を使用したことがあるかどうか、もしそうなら、この関数がどのように使用されるのか疑問に思っていました。
delphi - バリアント レコードにメソッドを含めるための構文は何ですか?
次のレコード定義があります
私がやりたかったのは、バリアント レコード パーツを導入して、3 つの要素に個別に、または配列としてアクセスできるようにすることです。つまり、
これはコンパイルされません (関数には関数の長さで結果の型が必要です)。私が間違っていることは明らかですか、それともサポートされていませんか? その場合、個々のフィールドに配列としてアクセスするエレガントでパフォーマンスの高い方法についての提案はありますか?
ps E3FloatT は、Single の単純な型エイリアスです。
delphi - Delphi 2010 バリアントから Unicode への問題
私は Delphi 2010 で DLL に取り組んでいます。バリアントの配列を受け取るプロシージャをエクスポートします。これらのバリアントのいずれかを取得して文字列に変換できるようにしたいのですが、????? を取得し続けます。
入力変数を変更できません - バリアントの配列でなければなりません。DLL を呼び出すホスト アプリは変更できません。Delphi 2006 で書かれています。
サンプル DLL コード:
D2006 を使用すると、私の DLL は正常に動作します。私は使ってみVartoStr
ました - 運が悪いです。を確認するVarType
と、 が表示されvarString
ます。これを修正する方法はありますか?
build - SCons: How to use the same builders for multiple variants (release/debug) of a program
The SCons User Guide tells about the usage of Multiple Construction Environments to build build multiple versions of a single program and gives the following example:
Instead of manually assigning different names to the objects compiled with different environments, VariantDir()
/ variant_dir
sounds like a better solution...
But if I place the Program()
builder inside the SConscript:
How can I export different environments to the same SConscript file?
Unfortunately the discussion in the SCons Wiki does not bring more insight to this topic.
Thanks for your input!