self_type cross(self_type const& r) const { impl_type* pl = (impl_type*)this->data(); impl_type const* pr = (impl_type const*)r.data(); impl_type res = pl->cross(*pr); return self_type(res(0), res(1), res(2)); }