問題タブ [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.
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
.
ここで質問
です。この種の再定義は標準で許可されていますか? そのステートメントの副作用はありますか?なぜそれを書くことができるのでしょうか?