私はクラス テンプレートを持っています。これは、特に istream をオーバーロードすることになっているため、ユーザーの入力を受け入れ、それを T 型の要素を保持するベクトルに追加 (プッシュ) します。
friend istream &operator>> (istream &in, Set<T> &s)
{
int ctr = 0;
string tmp;
T val;
while (true) {
cout << "\tElement #" << ctr + 1 << ": ";
getline (in, tmp);
if (tmp == "\0") break;
// MISSING CODE HERE: "Convert" tmp into val
s.add(val);
ctr = s.size();
}
return in;
}
これは で問題なく動作Set<string>
しますが、任意のプリミティブ データ型でも機能させる方法を見つける必要がありますSet<integer>
。
やってみた
stringstream(tmp) >> val
しかし、それでは機能しませんSet<string>
。
入力は文字列として読み込む必要があると思います。では、入力文字列を T 型にキャストして .add() 関数に渡すにはどうすればよいでしょうか?