問題タブ [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.
delphi - OleVariantをキャストすると例外が発生するかどうかをテストします(例外を発生させずに)
Delphiでは、特定のOleVariantを特定のデータ型にキャストできるかどうかを、例外を発生させずにキャストできるかどうかを判断したいと思います。例外はプログラムフローではありませんよね?
私が欲しいのはこのようなもので、TypeはOleVariantによってサポートされているものなら何でもかまいません。
私が欲しくないのは
バリアントをブール値に変換できなかったケースは、定期的に発生する通常のケースであり、いかなる種類のエラーも示していません。
c++ - boost::exception と boost::variant の組み合わせに関する問題
boost::exception が含まれている場合、2 レベルのバリアント構造体で奇妙な問題が発生します。次のコード スニペットがあります。
コンパイルしようとすると、次のエラーが発生します。
コード スニペットは可能な限り単純化されていますが、実際のコードの構造ははるかに複雑で、各バリアントには 5 つのサブタイプがあります。
#include boost/exception/all を削除して次のテスト スニペットを試すと、プログラムは正しくコンパイルされます。
boost::Exception を使用している場合でも機能するために、演算子 << を定義する方法を教えてください。
感謝と敬意
リック
c++ - boost::variantを確認してくださいnullの場合
プログラムにboost::Variantがあり、バリアント自体が初期化されているかどうか、またそのタイプの1つに値が含まれているかどうかを確認したいと思います。
バリアントでempty()を試しましたが、うまくいかないようです。NULLに対するチェックも行いません。
誰かがこれをチェックする方法を知っていますか?
編集:わかりました、それは決して空になることはないようですが、含まれているタイプに常に値があるとは限らないので、値のない状況を確認するにはどうすればよいですか?
arrays - クラスプロパティとしてのバリアント型のVBA配列
いくつかの数値配列(double型)を処理するクラスがあり、記述子の配列も処理する必要があります。これには、文字列と整数の組み合わせが含まれ、それに応じて文字列と数値として使用する必要があります。そこで、(配列を含むバリアントではなく)バリアント型の配列プロパティを作成することにしました。しかし、これは機能していないようですが、double配列は機能します。
具体的には、このタイプのdouble array-propertyは正常に機能し、配列を一度に受信または返します。
しかし、バリアント型の配列で同じパターンを試してみると、Getプロパティは空の/割り当てられていないバリアント配列を返します。
もちろん、(バリアント型の配列を使用する代わりに)バリアントで配列をラップすると、正常に機能します。
しかし、プロパティで、Dim D()AsDoubleで機能するパターンがDimV()As Variantでは機能しないことは既知であり、標準ですか?
c# - 呼び出しのように、バリアント型のパラメータを使用してVB6(dllファイル)で機能します。ネット?
メソッド付きのdllがあります。このメソッドは、vb6のオブジェクトパラメーター(.net内)を受け入れ、文字列のベクトルであるバリアントとして定義されます。
文字列の配列を渡して.netでこのメソッドを呼び出すにはどうすればよいですか?
例を送ってください
ありがとう
recursion - バリアント、再帰関数、型推論
私はOCamlを始めたばかりですが、OCamlの使い方をよく理解するために、過去2日間ずっと働いていました。私は最近たくさんのことをしていますが、何かが私を前進させるのを妨げています。
OCamlにevalexprを実装しようとしています。あなたが言うだろうこの言語を使うのはとても簡単です:それで私は考えました、そして私が最初にしたことは、通常のintを使って、うまくいきました。しかし今、私は自分のOWN型と自分の関数を使って演算を解こうとしています。もちろん、思ったほど簡単ではありません。
これは私には問題ないようです...しかし、コンパイラは同意しません。「(evalexpra)」がMyInt.myint型であることは明らかだと思います。これは、evalexpr関数が返すことができる唯一の最終的な戻り値であるためです。それでも、コンパイラはその型が「expr->MyInt.myint」であると見なします。 。
関数evalexprを適用せず、関数自体を返すという意味ですか?もしそうなら、なぜそれはそれをするのでしょうか?私はそれを理解することができません。そして、私がここで達成しようとしていることを行うための別の方法を考えることはできません。
c++ - C++0xで静的に型付けされたバリアントを作成する
C ++ 0xで静的に型付けされたバリアント(autoのように動作する)を作成できるかどうか疑問に思っています:
vをint以外の値に割り当てると、コンパイルされません。
これまでのところ、私はエレガントな解決策を見つけていません。
variant - バリアント型のストレージと配置の問題
boost::variantの代わりに使用するバリアント型を作成しました。Mineは、可能なタイプのリストに現在のタイプのインデックスを格納し、最大のタイプを格納するのに十分なスペースがあるバイト配列にデータを格納するように機能します。
さて、このバリアント型に値を書き込むと、問題が発生します。私は以下を使用します:
クラッシュする行は、データを内部バッファに格納する行です。ご覧のとおり、バイト配列を目的の型のポインターに直接キャストしています。これにより、いくつかの値を書き込もうとすると、アドレス信号が不良になり、バスエラーが発生します。
64ビットシステムでGCCを使用しています。配列のアドレスが64ビットで整列されていることを確認するために、バイト配列の整列を設定するにはどうすればよいですか?(または、このプロジェクトを移植する可能性のあるアーキテクチャに合わせて適切に調整します)。
編集:ありがとうございましたが、間違いはどこかにありました。どうやら、Intelは実際にはアライメントを気にしていないようです。整列されたものはより高速ですが必須ではなく、プログラムはこのように正常に動作します。私の問題は、何かを書く前にデータバッファーをクリアしなかったため、一部のタイプのコンストラクターで問題が発生したことです。ただし、質問に回答済みのマークを付けないので、より多くの人が調整のヒントを教えてくれます;)
c++ - boost::variantの使用法
私はwxWidgetsを介してGUIアプリケーションを開発しています。GUI部分と「ロジック」部分の2つの部分があります。Logicの部分をwxWidgetsから完全に独立させたいです。しかし、GUIの1つのコンポーネントがwxVariantを返し、ロジック部分で使用する必要があります。
だから私はwxVariantをブーストするために「変換」する方法を探しています::variant
wxVariantは次のように機能します。
だから私は次のようなことを考えています
このようにboost::Variant(またはboost :: Any)を使用することは可能ですか?
vba - バリアント配列が割り当てられていないかどうかを確認する方法は?
私のウォッチウィンドウでは、これは次のように表示されます
以下を確認するにはどうすればよいですか。
また
これは基本的に私が達成しようとしていることですが、最初のものは機能せず、2番目のものは存在しません。