問題タブ [anonymous-struct]
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.
c++ - 柔軟な配列を匿名構造体にラップすると、MSVC構造体レイアウトが変更されますか?
Godbolt を使用して、次の構造体のレイアウト情報を見ています。
両方の構造体のレイアウトが同じであるFoo1
と予想していFoo2
ました。私が理解していることから、匿名のネストされた構造体のフィールドは、単に親構造体に「折りたたまれ」ます。したがって、 のレイアウトは のレイアウトとFoo2
同じになるはずですFoo1
。
ただし、MSVC 19.16 によって生成され、フラグを使用したときに表示されるレイアウトは/d1reportSingleClassLayoutFoo
異なります。
Foo2
の倍の大きさですFoo1
。そしてdata
突然、1バイトのサイズがあるようです。
で生成されるいくつかの警告があります-Wall
:
しかし、これらのいずれも、レイアウトの違いを説明したり、未定義の動作を示唆したりするようには見えません。そして、ドキュメント: Anonymous structsもそうではありません。
記録として、このコードが MSVC 拡張機能に依存していることは知っています。
「サイズがゼロの配列」は、フィールドの前に配置するとエラーがスローdata
されるため、柔軟な配列メンバーのようです。size
Foo1
とのレイアウトがFoo2
異なるのはなぜですか?
go - テンプレートのパイプラインとしての匿名構造体
で次のことを行う方法はありhtml/template
ますか?
上記のように、実際にはテンプレートを意味します。FuncMap
構造体を返す登録済みの関数経由ではありません。
私はそれを試しましたが、Parse
パニックになりました。 Playground を参照してください。多分私は構文を間違ったのですか?
c++ - クラス外のプライベート構造体メンバーにアクセスできるのはなぜですか
このプライベート struct メンバーにアクセスすると、msvc コンパイラはメンバーにアクセスできないことを通知しましたが、コードは正常に実行できます。
しかし、構造体メンバーを省略した場合、コードは実行できません
txt出力
私はコードを編集しました。このコードはテストを行うことができます。私はvs2015(ツールv140)を使用しています
go - フィールドが匿名構造体内でエクスポートされるかどうかは違いがありますか?
golangの匿名構造体のフィールドをエクスポートする(またはエクスポートしない)と違いはありますか? 言い換えれば、次の 2 つのコード ブロックは、何らかの点で互いに異なるのでしょうか? それが匿名の構造体であることを考えると、変数自体の外部で構造体を使用することはできないため、コンパイル時に大文字の F は違いがないと仮定します (コンパイル速度や実行時のメモリの違いはありません)。
ブロック 1:
ブロック 2: