汎用的な関数を作りたいのでテンプレートを作ろうと思い
テンプレートを使ったもので実現できないのかなぁと思いました
それで、戻り値を汎用変数にしたのですがコンパイルが通りません
参考書にも引数には汎用変数を使っているのですが
戻り値に使用している例はみたことがないです
下がソースコードでコンパイルエラーなのですが
汎用変数を戻り値にした関数は作成できないのでしょうか?
テンプレートを戻り値に使用する
Re: テンプレートを戻り値に使用する
できますよ。
ただし、今回のような場合は呼び出し時にテンプレートパラメータを明示する必要があります。
ただし、今回のような場合は呼び出し時にテンプレートパラメータを明示する必要があります。
#include <iostream>
#include <vector>
using namespace std;
template <class X>
X func()
{
X x(10); // Xはintから変換可能でなければならない
cout << "in func" << endl;
return x;
}
int main()
{
// int型の10
int x = func<int>();
// double型の10
double y = func<double>();
// 要素数10のvector<int>
vector<int> z = func< vector<int> >();
return 0;
}
Re: テンプレートを戻り値に使用する
>>a5uaさん
なかなかやっかいですね
>>たかぎさん
これは、難しすぎる
なるほど、結構複雑になってしまうので
戻り値でなく引数に汎用変数のポインタを渡すことにします
ありがとうございました
なかなかやっかいですね
>>たかぎさん
これは、難しすぎる
なるほど、結構複雑になってしまうので
戻り値でなく引数に汎用変数のポインタを渡すことにします
ありがとうございました