【C++】template 統合スレ -- Part4
■ このスレッドは過去ログ倉庫に格納されています
0656デフォルトの名無しさん
NGNGテンプレートの特殊化を行うとき、同じ型のものを別々に特殊化したいときは
どのように実装するのがスマートなのでしょうか?
例としては、こんなかんじに扱いたいのです。
----
template <typename T> class X
{
const T PI;
// some method ...
};
typedef float Degree;
typedef float Radian;
template <> const Degree X<Degree>::PI = 180.0f;
template <> const Radian X<Radian>::PI = 3.14f;
----
現在は、
----
template <typename T, int UNIQ> class XCore
{
public:
XCore(const T& t) : m_t(t) {}
const T& operator() const { return m_t; }
private:
T m_t;
};
typedef XCore<float, 0> Degree;
typedef XCore<float, 1> Radian;
----
とやっているのですが、いまいちその場しのぎなかんじがしてます。
そもそもの設計がまずいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています