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

0 投票する
6 に答える
26643 参照

c++ - ダイナミックキャスティングの「良い使い方」の例は何ですか?

ダイナミックキャスティングは避けるべきだとよく耳にします。あなたによると、私はそれの「良い使い方」の例は何でしょうか?

編集:

はい、私はその別のスレッドを知っています:私が質問したのは、そこで最初の答えの1つを読んだときです!

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

delphi - Delphi OTA と RTTI のバグ

私は Delphi の専門家を書いています。オブジェクトであるプロパティのプロパティに値を書き込むことができる必要があります。たとえば、フォームに GroupBox があり、Margins.Left プロパティを編集したいとします。私はそれを行うために次の手順を使用していますが、マークされた行に AV が表示される場合。

このプロシージャは、(プロパティ エディタ) プロパティ名 (「Margins.Left」など) と新しい値からコンポーネントを取得し、プロパティ名を解析してオブジェクトをフェッチし、現在の値を読み取り、異なる場合は変更を試みます。次に、変更をログに記録するメソッドを呼び出します。

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

delphi - Delphi のオブジェクトの RTTI

Delphi でオブジェクトを XML に解析しようとしているので、オブジェクトの ClassInfo メソッドを呼び出してその RTTI 情報を取得する方法について読みました。

問題は、これは明らかに TPersistent オブジェクトに対してのみ機能するということです。それ以外の場合は、コンパイラが RTTI 情報を生成するように、コンパイラ ディレクティブ {$M+} をソース コードに明示的に追加する必要があります。

そのため、喜んでディレクティブを追加しましたが、ClassInfo 呼び出しから何かが返されたとしても (以前は nil が返されていました)、クラスのプロパティ、フィールド、またはメソッドを取得できなくなりました。オブジェクトを空にして作成したようなものです。

ここで何が欠けているのですか?ありがとう!

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

c# - is vs typeof

これらのコードのうち、どれがより高速ですか?

編集:彼らが同じことをしていないことは承知しています。

0 投票する
10 に答える
18390 参照

c++ - C++ RTTI の実行可能な例

私は C++ RTTI に精通しており、その概念が興味深いと感じています。

それでも、正しく使用するよりも悪用する方法がたくさんあります (RTTI スイッチの恐怖が頭に浮かびます)。開発者として、私はそれの実行可能な用途を 2 つだけ見つけました (そして使用しました) (より正確には、1.5 です)。

サンプルコード/疑似コードを含めて、RTTI が問題に対する実行可能なソリューションである方法をいくつか共有していただけますか?

注: 目的は、ジュニア開発者が相談し、批判し、学ぶことができる実行可能な例のリポジトリを用意することです。

編集: C++ RTTI を使用して以下のコードを見つけることができます

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

delphi - 実行時のコンポーネントの複製

公開されたプロパティを含め、親コンポーネントの下にすべての子コンポーネントを複製する簡単な方法はありますか?

例えば:

  • Tパネル
    • Tラベル
    • TEdit
    • TListView
    • TSpecialClassX

もちろん、最も重要な要素は、通常の状況ではコードを変更せずに、TPanel にドロップした新しいコンポーネントを複製する必要があることです。

RTTI については聞いたことがありますが、実際に使用したことはありません。何か案は?

0 投票する
5 に答える
21794 参照

c++ - C++テンプレートパラメータを抽出します

疑わしいですが、おそらくRTTIを使用して、既存の型からプリミティブ型のテンプレートパラメータを抽出できるかどうかについて興味があります。

例えば:

他の場所にハードコーディングせずに、上記のコードの番号16を抽出することは可能でしょうか?コンパイラ固有の実装は大歓迎ですが、私は特に興味がありg++ます。

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

delphi - Delphi RTTI トラブル: GetPropInfo は {$METHODINFO ON} で nil を返しますか?

指定されたクラスが正しい {$METHODINFO} ディレクティブで宣言されていても、GetPropInfo が nil を返す可能性はありますか?

0 投票する
3 に答える
609 参照

c++ - C++ で不明なオブジェクトの型を見つける

プログラムのメモリ リークをチェックする方法は多数あります。リークしたメモリ ブロックへのポインターのリストが表示されますが、各ブロックの詳細情報を見つける良い方法はありますか? 例: オブジェクトが文字列であることがわかっている場合、実際の文字列値により、リークを簡単に見つけることができます。

それを可能にする RTTI へのバックドアはありますか?

解決すべき問題は、ポインターを取得するまでにランタイム システムが既にシャットダウン状態にあり、オブジェクトへのポインターではなく生のメモリ ブロック ポインターを取得することです (ただし、多くの場合は同じである可能性があります)。

0 投票する
7 に答える
12725 参照

xml - カスタム コードではなく RTTI を使用して、Delphi オブジェクト ツリーを XML にシリアル化する良い方法は何ですか?

カスタム コードではなく RTTI を使用して、Delphi オブジェクト ツリーを XML にシリアル化する良い方法は何ですか?

この機能がすでに Delphi に組み込まれていることを知りたかったのですが、そうではないようです。

この機能を実行する可能性があると思われるいくつかのコンポーネント (以下に投稿) を見つけました。それらのいずれか、または他の製品を使用したことがありますか? 自分で作ったことがありますか?Delphi で明らかな何かが欠けていますか?