0
template <typename T>
inline T fromBool(bool var) { return var ? T(1) : T(0); }
template <>
inline Vec2 fromBool<Vec2>(bool var) { return var ? Vec2(1, 1) : Vec2(0, 0); }
// Some more specializations for Vec3, etc
これは、複合型Vec2
の定義例である:しかし
struct Vec2 {
double x, y;
Vec2(double a, double b) { x = a; y = b; }
}
、専門分野は機能していません。 fromBool<const Vec2>(var)
を呼び出すと、コンパイラはデフォルトの実装(単純型の場合)を使用します。
私は間違っていますか?
から一つの可能な実装は、私の知る限りのhttpを言うことができるように作品を見つけることができ、C++ 98でそれを実装するのは難しいことではありません。 //ideone.com/LIRxTQ – StoryTeller
@StoryTeller問題を発見したのは、これを 'const'型に定義する必要があったからです。 'const'のすべての特殊化を再定義するための回避策がありますか? – manatttta
質問を編集して実際の問題を表示できますか? – StoryTeller