- yes, `TemplateVector3(-1., a, 1, b)` is better than `TemplateVector3(a, b)` to represent v=b-a in the codes without reading documentation, though `TemplateVector3 v = b -a` is the best.
- I don't see a problem to add `operator-()`
- I ask you the same question again. What will you do for v=a+b? Do you provide a constructor only for v=b-a but not for v=a+b? For me it looks inconsistent.