Приведение объекта POD со статическим _приведением

вот что я имею в виду,

class V3
{
public:
float x,y,z;
};

class V3_
{
 public:
float x,y,z;
};

V3_ vec1;
V3 vec2 = static_cast(vec1);

что я должен сделать, чтобы этот бросок работал во время компиляции?

Спасибо.

редактировать:

кажется, есть некоторое непонимание того, что я хочу сделать. я могу написать оператор для преобразования, но я хочу, чтобы это было сделано во время компиляции.

вот две реализации Vector3, которые допускают статическое приведение _. я не знаю, как это работает, но это работает.

http://www.ogre3d.org/docs/api/html/OgreVector3_8h_source.html

http://harry-3d-engine.googlecode.com/svn/trunk/NxOgreVec3.h

я могу сделать этот слепок

 void DynamicBody::SetLinearMomentum(const Vector3& vel)
 {
body->setLinearMomentum(static_cast(vel));
 }

Я хотел бы объяснить, как я могу это сделать.

редактировать:

после дальнейшего исследования я обнаружил, как это происходит на самом деле, он звонит

template
inline user_xyz_vector_type as() const {... }

это не настоящее статическое приведение _, но компилятор принимает его как одно. я действительно надеялся, что кастинг стручков друг другу был реальной вещью.

0
задан mikbal 9 July 2012 в 19:28
поделиться