- Documentation is already clear. But we will not always see it when reading codes. 
- What will you do if you need `v=a+b`? If you really need this kind of constructors, I suggest to make it more general with two coefficients, `TemplateVector3(double a, const MathLib::TemplatePoint<T> &x, double b, const MathLib::TemplatePoint<T> &y)` i.e. Z = a*X + b*Y