VC PlusPlus:E2422 既定値にされた既定のコンストラクターを…にすることはできません。 対処方法

提供:yonewiki
2022年9月26日 (月) 09:22時点におけるYo-net (トーク | 投稿記録)による版 (ページの作成:「VC PlusPlusに戻る == '''概要''' ==  このエラーの一部は、Visual Studioの不具合なんです。コードインテリセンスという常時文法チェックをしている仕組みの不具合で、例えば暗黙的に宣言された既定のコンストラクターは constexpr ではありません。というようなエラーが出ても、実際はいくら調べても文法的に間違えていないということがあります。こ…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

VC PlusPlusに戻る

概要

 このエラーの一部は、Visual Studioの不具合なんです。コードインテリセンスという常時文法チェックをしている仕組みの不具合で、例えば暗黙的に宣言された既定のコンストラクターは constexpr ではありません。というようなエラーが出ても、実際はいくら調べても文法的に間違えていないということがあります。このエラーと他のエラーが組み合わさった時にエラーとして扱われます。まずは、このエラーを無視して他のエラーを対応しましょう。Microsoft側は直すつもりは無いみたいです。勘違いするような変な使い方をするなっていう感じなのかな?でも実際はこのエラー単体ならエラーとして扱われない所は、結局はコンパイル時に問題が無いという判断がなされて、そのまま進むのは規格には忠実で良かったなぁって思う所もあります。constexprは


 constexpr 関数名() = default;


のような使い方をします。これは関数名()というデフォルトコンストラクタを有効にするというものです。これを定数式として扱うという意味になります。  

VC PlusPlusに戻る