問題タブ [std-variant]
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++ - const 参照を期待する関数に C++17 標準バリアントへのポインターを渡すことに関する一貫性のない動作
定数参照を期待する関数にポインターを渡すことに関して、奇妙な動作が見られます。明らかに、C++ は、参照を期待する関数にポインターを渡す前に、ポインターを参照することを期待しています。エラーまたは警告を探していますが、意味をなさない特定の条件が満たされない限り、エラーまたは警告が表示されません。
ポインターと参照の型は、C++ 17 標準バリアント (下記) です。私の C++17 バリアントのテンプレートにブール値が含まれている場合 (以下のように)、GCC8.3 はコードを正常にコンパイルします。しかし、予期しない実行結果があります。
標準バリアント テンプレートからブール値を削除すると、コードが期待どおりにコンパイルされません。違いはなぜですか?
上記のコード ブロックとしてコンパイルして実行します。
StdVARIANT から 'bool' をコメントアウトし、次のようにします。
bool がコメントアウトされたときだけでなく、常にエラーが発生しないのはなぜですか?