問題タブ [prvalue]
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++ - これは、C++ 標準 N3337 5.2.10 節 7 の「型の prvalue」を意味しますか?
C++ ドラフト標準 N3337セクション5.2.10節Reinterpret cast
7 (強調鉱山):
オブジェクト ポインターは、別の型へのオブジェクト ポインターに明示的に変換できます。「T1 へのポインター」型の prvalue v が「cv T2 へのポインター」型に変換されるとき、結果は、
static_cast<cv T2*>(static_cast<cv void*>(v))
T1 と T2 の両方が標準レイアウト型 (3.9) であり、T2 のアライメント要件がそれらより厳密でない場合です。 T1 の、またはいずれかの型が void の場合。
これは、式v
が prvalue であることを意味しますか? もしそうなら、
上記の変数pa
は ですので、 の変数が正しい式にある場合、その変数はの 型lvalue
であると考えることができますか?.lvalue
prvalue
c++ - C++17 コンパイラ (gcc または Microsoft Visual C++) には、「一時ファイルを生成しない」機能を禁止するオプションがありますか?
次の場合、С++17 コンパイラに一時的に作成するように指示するにはどうすればよいですか (つまり、C++17 コンパイラは、C++11 および C++14 コンパイラのように、コピー/移動操作を考慮する必要があります)。
出力 (c++14 - これが私が欲しいものです):
出力 (c++17):
私の顧客は大量の C++11 コードと C++17 コンパイラを持っています: gcc 8.3.0、および Microsoft C++ コンパイラ (Visual Studio 2017 および 2019 から)。そして、上記のコードを含む多くの場所があります。C++17コンパイラには、そのような場合に「一時的に生成しない」という機能を禁止するオプションはありますか?