09/06/06 22:04:24
以下の変態プログラムでテンプレートパラメータの挙動についてご確認ください
#include <iostream>
using namespace std;
template < class T > class foo {
public:
foo() : x( 0 ) {};
foo( foo *p ) : x( p ) {};
template < class T > foo &bar( foo<T> &t ){
cout << t.member << endl;
return *x;
}
T member;
foo *x;
};
int main() {
foo< int > base;
base.member = 1000;
foo< int > i(&base);
foo< char > c;
i.member = 1;
c.member = 'a';
foo< int > r = i.bar( c );
cout << r.member << endl;
}