Introduction
こういうコードを MSVC (Microsoft C++ コンパイラ) でコンパイルする。
1 |
|
すると、
日本語
1 | D:\demo\main.cpp(9,34): warning C4101: 'ex': ローカル変数は 1 度も使われていません。 [D:\demo\build\win\Demo.vcxproj] |
英語
1 | D:\demo\main.cpp(9,34): warning C4101: 'ex': unreferenced local variable [D:\demo\build\win\Demo.vcxproj] |
のような鬱陶しいメッセージ コンパイル対象の関数 テンプレート インスタンス化 がでる。
MSVC で開発しているとよく見るメッセージだが、関数テンプレートに問題があるようにも思えるが、実行時に特に問題も起きなかったので、理解をおざなりにしていた。
それだと良くないので理解してみようと思う。
What is this?
結論を言えば、このメッセージそのものには何の問題もない。
このメッセージはエラーやワーニングの対象行が関数テンプレートを使っている場合に、関数テンプレートの場所を教えてくれているだけなのである。
なので、今回のケースにおいては C4101
を解決または抑制すればメッセージも出なくなる。
そうは言っても、サードパーティのライブラリを使っていたりすると、そちら側でワーニングが出ているとどうにもならない…