問題タブ [rtti]
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 - Delphi 2010: 新しい RTTI、propertyvalue を任意の値に設定
TRTTIProperty.SetValue( ) は TValue インスタンスを受け取りますが、提供された TValue インスタンスが別のタイプのプロパティに基づいている場合、問題が発生します。
例えば
値を文字列にキャストしようとしてもうまくいきません。
これを解決する方法についてのアイデアはありますか?
アップデート:
なぜ整数を文字列に代入する必要があるのかと疑問に思う方もいらっしゃると思いますが、説明を試みます。(実際には、文字列を整数に割り当てたい可能性が高いですが、それはあまり関係ありません...)
私が達成しようとしているのは、GUI とモデルの間の一般的な「仲介者」を作ることです。どういうわけかテキスト編集フィールドをプロパティにフックしたい。私が持っているモデルごとにそのような仲介者を作る代わりに、新しい RTTI/TValue が私にとって魔法のように働くことを願っていました。
私はジェネリックも初めてなので、ジェネリックがどのように役立つかわかりません。動的に決定された型で実行時にジェネリックをインスタンス化することは可能ですか、それともコンパイルで知る必要がありますか?
例えば
魔法の時代はまだ来ていないのかもしれません... いくつかの大きなケース構造で対処できると思います...
delphi - RTTI: 名前で型を取得できますか?
型名を含むテキスト文字列が与えられた場合、適切な型自体を取得する方法はありますか?
私はこのようなことをしようとしています:
オンラインでいくつかの RTTI の説明を調べ、Delphi ユニットを調べましたが、探しているものがわかりません。これは可能ですか?
delphi - 新しいRTTIを介したインデックス付きプロパティの操作の問題[D2010]
上記のコードは、.GetPropertyが "Strings"、 "Objects"、 "Values"(インデクサーを含むもの)などのプロパティでnilを返すため失敗します。これは既知の制限であり、問題は、これらのインデックス付きプロパティにアクセスする方法があるかどうかです(できれば、古いRTTIユーティリティにフォールバックすることなく)。
c++ - type_infoが名前空間stdの外部で宣言されているのはなぜですか?
私はVS2005とSTLのMS実装を使用しています。ただし、のクラスtype_infoは、「namespacestd」の外部で宣言されています。これにより、std :: type_infoを見つけることを除いて、サードパーティのライブラリにいくつかの問題が発生します。なぜそうなのですか、そして回避策はありますか?typeinfoの最初からのサンプルを次に示します。
delphi - Delphi 2010 rtti で配列の長さを設定する方法
実行時に配列の長さを設定する方法は? setLength(t.GetProperty('プロパティ'),3); ????
編集:
このコードは配列の長さを変更しますが、間違っています。5 ではなくランダムな値です。 (19736192)
編集2:
@Robert Love、返信ありがとうございますが、問題は続きます。(Embarcadero® Delphi® 2010 バージョン 14.0.3513.24210)
click button2 無効なポインター操作。
c++ - 抽象基本クラスで __declspec(novtable) を使用すると、RTTI に何らかの影響がありますか?
または、__declspec(novtable) を使用することによるその他の既知の悪影響はありますか? 問題への参照が見つからないようです。
visual-c++ - CException ::`VC++アプリケーションのRTTI完全オブジェクトロケーター
こんにちは
VC++アプリケーションでCException::`RTTI CompleteObjectLocator例外が発生することがあります。
この特定の例外が発生する理由を知っている人はいますか。
GetLocaleInfo()WINDOWSAPIを呼び出すとこれが表示されます。
どんな助けでも素晴らしいでしょう。
ありがとう
c++ - typeid が同じ型に対して異なる type_info インスタンスを返すことができるのはいつですか?
Andrei AlexandrescuはModern C++ Designで次のように書いています。
によって返されるオブジェクトに
typeid
は静的ストレージがあるため、有効期間の問題について心配する必要はありません。
アンドレイは続けます:
標準では、たとえば の各呼び出しが同じオブジェクト
typeid(int)
への参照を返す ことは保証されていません。type_info
標準ではこれが保証されていませんが、GCC や Visual Studio などの一般的なコンパイラではどのように実装されているのでしょうか?
typeid
リークしない (そして呼び出しごとに新しいインスタンスを返す)と仮定すると、それはアプリケーションごと、翻訳単位ごと、dll/so ごと、またはまったく異なるものごとに 1 つの「テーブル」ですか?
ときはあり&typeid(T) != &typeid(T)
ますか?
私は主に Windows 用のコンパイラに興味がありますが、Linux やその他のプラットフォームに関する情報も歓迎します。
c++ - C++ RTTI と派生クラス
私の C++ は少し錆びています。これが私がやろうとしていることです:
最初の問題:
どちらも Cmd * タイプを返します。私の望む結果は CmdA* と CmdB* です。これを達成するための次の方法以外の方法:
第二に、私はこのようなことをしたいと思います:
出力「Cmd A」と「Cmd B」を取得します。現在、「汎用コマンド...」が 2 回出力されます。
ありがとう
c++ - どのデザインパターン / RTTI
オブジェクトを正しい「ターゲット」オブジェクトにディスパッチする最良の方法を探しています。
基本コマンド クラス: Cmd、2 つのサブクラス: BufferCmd と StateCmd があります。コマンド「GotoLine」は BufferCmd から派生し、「ChangeCmd」は StateCmd から派生します。BufferCmds は Buffer クラスに移動するためのものであり、StateCmds は State オブジェクトに移動するためのものです。
現在、次のようなことができるように訪問者パターンを設定しています。
おおよそ次のようなことができるようにしたいので、訪問者パターンを使用したいと思います。
残念ながら、これを使用するには、コマンドを送信するオブジェクトを知る必要があります。私はこのようなことをしたいと思います:
このような状況に最も適したパターンはありますか? 訪問者パターンを使用する必要がありますか? 明らかに私はこれを避けたい:
ありがとう