問題タブ [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.

0 投票する
1 に答える
189 参照

c++ - 単純なスクリプト化された「言語」の作成-VARIANTのような値型

C ++で開発されたルールエンジンの場合、コア機能の1つは値型です。私がこれまでに持っているのは、COMスタイルのVARIANTに少し似ています。各値は、そのタイプを知っています。型変換にはいくつかのルールがありますが、少し面倒です。

事前に構築されたシステム全体を使用しなくても、これを解決するために使用できる優れたドロップイン値クラスがあるかどうか疑問に思いました。たとえば、ブーストには何かがありますか?

0 投票する
4 に答える
1187 参照

c++ - C++ テンプレート バリアントの型の数は制限されていますか?

バリアントがどのように実装されているかを理解しようとしています。

http://www.codeproject.com/KB/cpp/TTLTyplist.aspx

そして、私は X 型を取るバリアントを書くことができないという印象を受けています。ただし、テンプレート作成者は N を選択し、バリアントには N 未満の型しか持てません。

これは正しいです?

ありがとう!

0 投票する
2 に答える
1181 参照

c++ - 基本的なバリアント (およびバリアントのビジター) テンプレートを C++ で実装するには?

私は読んでみました:

しかし、バリアントがどのように実装されているかはまだわかりません。次のようなものを定義する方法の短い例を誰でも貼り付けることができますか?

ありがとう!

0 投票する
2 に答える
1945 参照

c++ - このC++タイプリストをバリアントに組み込む方法は?

ここ、

このc++タイプリストテンプレートのコンパイルエラーを修正するにはどうすればよいですか?

最新のC++デザインのコードを使用して、タイプリストを作成しました。

質問は今です-これをどのように取得してバリアントクラスに組み込むのですか?

0 投票する
2 に答える
698 参照

c++ - Boost バリアント タイプでのディスパッチには直線的な時間がかかりますか?

boost::variant でのディスパッチはどのくらい効率的ですか?

switch ステートメントの場合、O(1) 時間しかかからないはずですが、私の知る限り、テンプレート メタプログラムは if しか生成できません。これにより、boost::variant ディスパッチが O(n) のランタイム オーバーヘッドで発生します。ここで、n = バリアントのタイプの数。

誰かがこれについて私を確認/否定/啓発できますか?

ありがとう!

0 投票する
1 に答える
23340 参照

windows - C++ で VARIANT 型との間で変換する簡単な方法

Visual C++ で s を操作できる、使いやすい高レベルのクラスまたはライブラリはありますか?VARIANT

doubleより具体的には、POD タイプ (例: 、long)、文字列 (例CString)、およびコンテナー (例std::vector) とVARIANTs の間で変換したいと考えています。例えば:

私は (素朴に?) COM を使用する人は常にこれを行っていると想定していたので、あらゆる種類の変換を処理する単一の便利なライブラリが存在する可能性が最も高いでしょう。しかし、私が見つけることができたのは、それぞれいくつかの型を変換するさまざまなラッパー クラスの組み合わせだけです。

VT_ARRAY | VT_I4Visual Basic に切り替える以外に、厄介なメモリ管理とビット単位のコードのこの悪夢を回避する簡単な方法はありますか?

関連する質問:

0 投票する
1 に答える
1572 参照

delphi - VarIsEmpty関数とVarIsEmptyParam関数の違いは何ですか

Delphi7で作業していると、関数だけでなくVarIsEmpty、も存在することに気づきましたVarIsEmptyParam

Delphiの助けはあまり説明を与えないので:

指定されたバリアントが割り当てられていないオプションのパラメーターを表す場合、VarIsEmptyParamはtrueを返します。

バリアントに他の値が含まれている場合、関数の結果はfalseになります。

誰かがこの関数を使用したことがあるかどうか、もしそうなら、この関数がどのように使用されるのか疑問に思っていました。

0 投票する
2 に答える
640 参照

delphi - バリアント レコードにメソッドを含めるための構文は何ですか?

次のレコード定義があります

私がやりたかったのは、バリアント レコード パーツを導入して、3 つの要素に個別に、または配列としてアクセスできるようにすることです。つまり、

これはコンパイルされません (関数には関数の長さで結果の型が必要です)。私が間違っていることは明らかですか、それともサポートされていませんか? その場合、個々のフィールドに配列としてアクセスするエレガントでパフォーマンスの高い方法についての提案はありますか?

ps E3FloatT は、Single の単純な型エイリアスです。

0 投票する
2 に答える
2012 参照

delphi - Delphi 2010 バリアントから Unicode への問題

私は Delphi 2010 で DLL に取り組んでいます。バリアントの配列を受け取るプロシージャをエクスポートします。これらのバリアントのいずれかを取得して文字列に変換できるようにしたいのですが、????? を取得し続けます。

入力変数を変更できません - バリアントの配列でなければなりません。DLL を呼び出すホスト アプリは変更できません。Delphi 2006 で書かれています。

サンプル DLL コード:

D2006 を使用すると、私の DLL は正常に動作します。私は使ってみVartoStrました - 運が悪いです。を確認するVarTypeと、 が表示されvarStringます。これを修正する方法はありますか?

0 投票する
2 に答える
2201 参照

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!