c言語の環境でVisual C++を利用してビルドする際、#pragma vtordisp(off)を記述すると警告C4939が表示されます。 この警告は、vtordispプラグマが非推奨となっており、将来のバージョンから削除されるためです
続きを読む »c言語 c4944の警告は、同一のシンボルがソースコードと参照されたアセンブリ内で重複して定義される場合に発生します。 ローカルに定義したシンボルが優先され、アセンブリ内のシンボルが無視されるため、この警告が表示されます。 この記事では、具
続きを読む »C言語の開発環境で発生するC4945警告は、複数のライブラリやモジュールから同じシンボルが読み込まれた際に表示されるエラーです。 シンボル名が重複することが原因で、不要な参照の削除やシンボル名の変更といった対策が必要となります。 この記事で
続きを読む »Visual Studioなどの環境で管理対象コードをコンパイルする際、古い型やメンバーに付与された[System::ObsoleteAttribute]を利用すると、警告C4947が表示されます。 サンプルコードでは、obsoleteとマ
続きを読む »c言語環境で見かける「C4948」警告は、アクセサー関数の戻り値の型と、対応するセッター関数の最後のパラメーターの型が一致しない場合に出る警告です。 主に古いコンパイラオプション「/clr:oldSyntax」を使用する際に発生します。 こ
続きを読む »Microsoft Visual Studioのコンパイラで発生するC4949警告は、#pragma managedや#pragma unmanagedが/clrオプションを指定せずに使用された場合に、これらの命令が無視されることを示す情報
続きを読む »c言語でコンパイルを実行する際、C4952警告が表示される場合があります。 これは、/LTCG:PGUPDATEを実行した後、/LTCG:PGINSTRUMENTで計測された入力モジュールに新たな関数が含まれており、プロファイルデータが見つ
続きを読む »c言語のC4953警告は、/LTCG:PGINSTRUMENTオプションを使用した際に、プロファイルデータ収集後にインライン展開候補として識別された関数が再コンパイルで編集され、対象外になる場合に表示されます。 この警告は情報提供を目的とし
続きを読む »「c言語 c4956」では、Visual Studio環境でコンパイル時に発生する警告「C4956」について説明します。 /clr:safeオプションを使用してコンパイルするコードに、検証不可能な型が含まれている場合に警告が表示されます。
続きを読む »C4960警告は、MicrosoftのLTCG:PGOPTIMIZEオプション使用時に、関数内の命令数が65,535を超えると表示されます。 つまり、関数が大きすぎるためプロファイル用の最適化ができない状態です。 解決策としては、関数を分割
続きを読む »c言語の開発時に警告C4961が表示されると、コンパイラがプロファイル記事付き最適化用のpgdまたはpgcファイルの読み込みに失敗したことを示します。 必要なプロファイルデータがマージされず、最適化が無効になる場合がありますので、設定やファ
続きを読む »Microsoft Visual C++などでC言語のコードをコンパイルする際、警告C4962が表示される場合があります。 この警告は、関数のプロファイルデータに矛盾が生じ最適化に利用できなかったときに通知されるものです。 プロファイリング
続きを読む »c言語のプロジェクトで表示されるコンパイラ警告C4964について説明します。 /GLや/LTCGなどのオプションを使用しながら最適化用の/Oオプションが指定されていない場合にこの警告が出ます。 そのため、プロファイル情報が収集されず、.pg
続きを読む »c言語で発生するC4965警告は、整数リテラルの0が暗黙にボックス化される状況に注意を促します。 Managed Extensions for C++環境などで、この警告が表示される場合は、nullptrや明示的なキャストを使用して意図を明
続きを読む »C言語環境で発生するC4972警告は、アンボックス操作の結果を左辺値として利用し、直接変更を試みたときに表示される警告です。 プログラム内で値型の逆参照や割り当てを行う際、予期しない動作が起こる可能性があるため、注意してコードを確認する必要
続きを読む »Microsoft Visual StudioでC/C++の開発を行う際、if constexprなどC++17の機能をC++14モードで使用すると警告C4984が発生します。 意図的に利用する場合は、/std:c++17オプションの採用や
続きを読む »C言語で発生するC4985警告は、関数の宣言と定義で使用するSAL注釈が一致していない場合に出ます。 SAL注釈はパラメータの取り扱いを明示するためにsal.hに定義されており、/analyzeオプションを指定すると警告が表示されやすくなり
続きを読む »c言語での警告C4997は、非推奨の関数や機能を使用したときに表示される警告です。 将来的な互換性やセキュリティ面での配慮が求められるため、代替の安全な機能の利用へ移行することが推奨されます。 開発環境が整っていれば、適切な対処や警告の無効
続きを読む »c言語の開発環境においても、まれに警告 C5037 が発生する場合があります。 Visual Studio 2017以降では、クラステンプレートのメンバー関数をアウトオブラインで定義する際に、既定引数を記述するとこの警告が出ます。 対策とし
続きを読む »