C++で、線形空間とか内積空間を実装する事って可能でしょうか?