在C++中編寫代碼時,我想表達一個概念,即對於X類型的組件,其最小值爲kMinValue
,其最大值爲kMaxValue
。爲此,我做了類似的:定義浮點值特性
template <typename ComponentType>
struct CompTraits
{
};
template <>
struct CompTraits<unsigned char>
{
typedef unsigned char ComponentType;
enum{
kMinValue = 0,
kMaxValue = 255
};
};
而且,我可以參考CompTraits<unsigned char>::kMinValue
。但是,我無法理解浮動數據類型的技巧。有人可以幫助爲花車定義相同的東西。
在此先感謝。
你知道['std :: numeric_limits'](http://en.cppreference.com/w/cpp/types/numeric_limits)嗎?例如'std :: numeric_limits :: min()'。 –
是的,但我並不是指float數據類型的限制。我有我自己的組件,它有它自己的限制,所以當組件的類型爲float時,它的限制是[0,1.0],但是當它的無符號字符限制是[0,255]等等。 – Aarkan
@Aarkan請注意,您也可以爲您自己的數據類型專門設置numeric_limits,這樣可以避免爲所有已定義的數據類型實現「CompTraits」。看到我的答案的最後編輯。 – zakinster