問題タブ [noop]

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

c++ - テンプレート パラメーターで許可されている自己への typedef です。

この作品に出くわしたとき、私は他の人のコードを読んでいました(MWEに削除されました):

ここでは、typedefそれ自体にテンプレート パラメーターの があり、GCC と clang ( の有無にかかわらず-std=c++2a) が不平を言います:

test.cc:3:19: エラー: 'typedef R Test::R' シャドウ テンプレート パラメータの宣言

ただし、 Compiler Explorerの ICC と MSVC はどちらもその部分を受け入れます。

私はこの質問typedefを読みましたが、通常、to self はノーオペレーションであることが示唆されています。しかし、ここではそうではないようです。この質問も関連していることがわかりましたが、ここではtypedef.

ここで質問
です。この種の再定義は標準で許可されていますか? そのステートメントの副作用はありますか?なぜそれを書くことができるのでしょうか?