template std::ostream& operator<< <T>(std::ostream& os, \
const point2d<T>& point); \
template std::ostream& operator<< <T>(std::ostream& os, \
const point3d<T>& point); \
template std::ostream& operator<< <T>(std::ostream& os, \
const ray<T, 2>& ray); \
template std::ostream& operator<< <T>(std::ostream& os, \
const ray<T, 3>& ray); \
template std::ostream& operator<< <T>(std::ostream& os, \
const vector2d<T>& v); \
template std::ostream& operator<< <T>(std::ostream& os, \
const vector3d<T>& v); \
template std::ostream& operator<< <T>(std::ostream& os, \
const circle<T>& circle); \
template std::ostream& operator<< <T>(std::ostream& os, \
const sphere<T>& sphere); \
template std::ostream& operator<< <T>(std::ostream& os, \
const rectangle<T>& rectangle); \
template std::ostream& operator<< <T>(std::ostream& os, const box<T, 3>& box);