問題タブ [reinterpret-cast]

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 に答える
1080 参照

c++ - ポインターのベクトルからconstポインターのベクトルへの再解釈は安全ですか?

この変換タイプは安全ですか

テンプレート引数が変更されているため、この場合、静的キャストは明らかに機能しません。しかし、この再解釈キャストを行うことで、私は本質的に同じタイプに恒常性を追加しているだけです。それで、これはすべての実用的な目的のために安全である必要がありますか?

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

c++ - アドレス、reinterpret_cast、多重継承

次のコードの動作を説明できる人はいますか?

  1. なぜb = 3最初のケースで、つまりb2 == &dtrue なのですか?
  2. ケース 2 でなぜ OK なのですか? b2とのアドレスを印刷しましたがd、それらは異なります。
0 投票する
1 に答える
3110 参照

c++ - バイナリ読み取り、reinterpret_cast、およびエンディアン

私は現在、エンディアン関連の問題に取り組んでいます。

ビッグエンディアンシステムにビッグエンディアンファイルがあると仮定しましょう。

このファイルの最初の値2882400152 = 0xABCDEF98は、整数4です。

その値を整数4、、で読み取るには、次の_myint4ようにします。

問題は、ファイル内の整数4の値を整数8で読み取ることに相当するものは何_myint8ですか?

  • ビッグエンディアンのファイルとシステムの場合は?
  • リトルエンディアンのファイルとシステムの場合は?

私の最初の推測はそのようなものになるでしょう:

しかし、私にはまったくわかりません。これを行うための良い方法は何ですか?

重要:一時的な整数4の値は使用できません。で、整数4を直接読み取る必要があります_myint8

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

c++ - イテレータが連続したメモリゾーンを形成しているかどうかを確認する方法は?

私は現在、生データの配列またはベクトルを読み取る次の関数を持っています ( _readStreamis a std::ifstream) :

最初の質問: この機能は大丈夫ですか?

メモリのブロックを直接読み取るため、からのメモリ ブロックがメモリ内で連続しfirstている場合にのみ機能します。lastそれを確認する方法は?

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

objective-c - double または float を NSUInteger として再解釈してハッシュを作成するにはどうすればよいですか?

これは私のisEqualとハッシュのカスタム演算子です

その人は仕事をします。ただし、距離と startfrom をハッシュに組み込みたいとします。

私は単に追加すると思います:

対応していないのでエラーです。

では、代わりに何をすべきですか?

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

c++ - std::copy_n と reinterpret_cast

outを使用しないと結果が異なるのはなぜreinterpret_castですか?

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

c++ - reinterpret_castとc-stylecastは互換性がありますか(C ++標準による)?

C ++標準では、これは実装で定義されていると述べており、元の型にキャストバック(を使用)すると元の値が最初に渡されることreinterpret_castを除いて、保証はありません。reinterpret_cast

少なくともいくつかのタイプのCスタイルのキャストは、ほとんど同じように動作します-同じ値で結果を前後にキャストします-現在、列挙とintsを使用していますが、他の例もいくつかあります。

C ++標準は両方のキャストスタイルにこれらの定義を提供しますが、混合キャストにも同じ保証を提供しますか?ライブラリXが関数からint Y()何らかの値を返す場合、Yの本体で初期値をenum変換するために使用されたキャストを気にせずに、上記のキャストのいずれかを使用できますか?私はXのソースコードを持っていないので、チェックできません(そして、とにかく次のバージョンで変更される可能性があります)、そしてそのようなことはドキュメントにほとんど言及されていません。enumint

このような場合のほとんどの実装では、両方のキャストが同じように動作することを私は知っています。私の質問は、C++標準はそのような場合について何と言っているのかということです。

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

c++ - c++、再解釈_キャスト構造体*をunsigned char*に

最初は私の英語で申し訳ありません:)だから、私は構造体と変数を持っています

関数 unsigned char ポインター引数に送信する必要があります。への型へreinterpret_castのポインタをキャストするために使用しようとしました。PACKETunsigned char*

しかし、私は試しました

何も見えません。なんで?そして、これを正しくキャストする方法は?

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

multiple-inheritance - エラー C2440: 'reinterpret_cast': 'overloaded-function' から 'StateFunc' に変換できません

コードは、C の DDJ 記事ステート マシン設計から取得されます。

そして、実装は次のとおりです。これも、多重継承を除く DDJ の記事から...

何が起こっているのかについての説明やヒントは大歓迎です...

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

qt - Qt-カスタムポインタを引数として取るスロットを呼び出す

Qtのシグナルとスロットをハックしようとしていますが、QMetaType::invokeMethodが呼び出されているスロットにポインター引数を正しく渡さないという問題が発生しました。

それから私はそれを次のように呼びます:

どこclass MyObject : public QObject { ... }。私もしQ_DECLARE_METATYPE(MyObject *)ますqRegisterMetaType<MyObject *>("MyObject *")

何が起こるかというと、レシーバーのスロットが呼び出されていますが、引数の値は、 as0に何を渡しても常に重要です。call(...)Q_ARG

好奇心から、レシーバーの自動生成されたMOCファイルを調べたところ、スロットが次のコードで呼び出されていることがわかりました。

の値が。_a[1]の適切なアドレスを持っていることがわかりますMyObject *。しかし、reinterpret_castそれをに変え0ます。

今、私は次の質問があります:

1)プログラムでスロットを呼び出し、ポインタ引数がスロットに適切に渡されるようにするにはどうすればよいですか?2)これは*reinterpret_cast< MyObject*(*)>(_a[1])どういう意味ですか?余分な括弧の(*)意味と、このコードの解釈方法は?