No. 'The 'T' is just a placeholder for the function / entity it is associated with. Also, remember that template functions and entities have to be implemented in the header file as well as declared.
// a.h
#ifndef A_H
#define A_H
// A template function
template <typename T> // notice the lack of a semicolon here - it is part of the function
T max(const T& rhs, const T& lhs) {
return (rhs > lhs ? rhs : lhs);
}
T val; // doesn't work: gives you an error
#endif
// a.cpp
#include "a.h"
#include <iostream>
...
int x = 6, y = 10;
// explicitly specifying 'T' here
std::cout << ::max<int>(x, y) << std::endl;
// can't do this
std::cout << ::max<T>(x, y) << std::endl;