私は、2D 用と 3D 用の 2 つの異なる変換クラスを持つカスタム エンジンに取り組んでいます。#define を使用して、使用する変換クラスを選択し、ロジックが同じであるべき場所でクラス名の代わりにその定義を使用しています。私は今、彼らに異なるロジックを持たせたいと思っており、そのために分岐するために比較をしたいと思っていました。これを機能させるにはどうすればよいですか?
class Transform2D;
class Transform3D;
#define TransformClass Transform2D
if(TransformClass == Transform2D)
{
//like this
}
else
{
//like that
}
そのためにタイプIDが機能しました。どのように扱いますか?
if ( typeid(TransformClass) == typeid(Transform2D) )
{
ittransform->SetRotation(0);
ittransform->SetScale(Vector2D(defaultScale, defaultScale));
}
else
{
ittransform->SetRotation(Vector3f());
ittransform->SetScale(Vector3f(defaultScale, defaultScale, defaultScale));
}