C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C++ template 関数について

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■96223 / inTopicNo.1)  C++ template 関数について
  
□投稿者/ 雲 (3回)-(2020/11/02(Mon) 21:03:19)

分類:[C/C++] 

VisualStudio2019(C++/17指定)で以下のようなtemplate関数をコンパイルすると以下のようなメッセージが表示されます。

エラーでもワーニングでもないので、気にしなくても良いのかもしれませんが、意味が良く理解できないですが、
コンパイラさんは何がお気に召さないのか教えて頂けないでしょうか?

template<typename T>
void Func( T a, T b )
{
T c; // ←この行があるとメッセージが表示されます。この行をコメントアウトすると何もメッセージは表示されません。
}


■コンパイラーのメッセージ
コンパイル対象の関数 テンプレートインスタンス化 bool Func<int>( T, T ) のリファレンスを確認してください。

よろしくお願いします。
引用返信 編集キー/
■96229 / inTopicNo.2)  Re[1]: C++ template 関数について
□投稿者/ 774RR (840回)-(2020/11/04(Wed) 08:42:13)
bool Func<int>( T, T ) と void Func<int>( T, T ) は全然別物だし
エラーメッセージのコピペは正確に。

template<typename T> void Func(T a, T b) {
	T c;
}

int main() { return 0;  }

Visual Studio 2019 Professional Version 16.7.7 で上記ソースを試したけど何も言われない。
Intellisense はなんだか赤×がついちゃうけど

もし Func<T> を実体化(インスタンス化)したのであればエラーっつか警告は2行になって
> templateTest.cpp(2,4): warning C4101: 'c': ローカル変数は 1 度も使われていません。
> templateTest.cpp(5): message : コンパイル対象の関数 テンプレート インスタンス化
> 'void Func<int>(T,T)' のリファレンスを確認してください
となるわけだけど、意味があるのは上のほうで(自明と思う)下は補助情報。


引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ