g++ cant compile template class seperatedly

so put all things in .h file for template class. and the m_data should
use T instead of int....
Merge remote-tracking branch 'origin/master'

Conflicts:
	chapter2/chapter2.depend
	chapter2/main.cpp