>>82の問題:以下のプログラムは値のペアを表すtemplateクラスと, その使用例です.
このクラスには値二つが等しいかどうかを返す関数same()があります. templateの特殊化を用いて, Pair::same()が Tがcharもしくはstringのときに大文字小文字を区別しない等しさを返すように書き換えて下さい. 以下の例では, a, d, f, gのsame()がtrueを返すはずです.
#include <iostream>
#include <string>
using namespace std;
template <class T>
class Pair { T fst; T snd;
public: Pair(const T& f, const T& s) {
fst = f; snd = s;}
virtual ~Pair(){}
bool same() { return fst == snd; }};
int main(){
 Pair<int> a(1,1); 
Pair<int> b(1,2);
Pair<char> c('a','b'); 
Pair<char> d('a','A');
Pair<string> e("abc","bcd");
  Pair<string> f("abc","abc"); 
Pair<string> g("abc","AbC");
cout << a.same() << endl; 
  cout << b.same() << endl; 
  cout << c.same() << endl; 
  cout << d.same() << endl;
cout << e.same() << endl;
cout << f.same() << endl;
cout << g.same() << endl;   return 0;}