C++ typename and .template
https://makecleanandmake.com/2015/07/20/leading-typename-dot-template-and-why-they-are-necessary/
typename Obj<T>::type var;v.template m<int>();
https://makecleanandmake.com/2015/07/20/leading-typename-dot-template-and-why-they-are-necessary/
typename Obj<T>::type var;v.template m<int>();