// 어떤 container가 가진 type을 알고 싶을 때가 있다.
// 이 문제를 해결하기 위한 STL은 아래의 기법을 사용하고 있다.
template<typename T> class vector
{
public:
typedef T value_type;
typedef T* pointer;
typedef T& reference;
typedef const T* const_pointer;
};
template<typename T> void foo( T a )
{
// typeof( a[0] ) n = a[0]; // 다른 언어에서 지원하는 언어 C#
// a에서 첫번째 요소를 꺼내고 싶다.
typename T::value_type n = a.front();
}
void main()
{
vector<double> v(5);
v[0] = 3.4;
foo( v );
}
Tag | C++