2012-07-20 37 views
0

我有一個特質類這樣無法解析的外部靜態和特質類

template <int Size, typename T> 
class Traits<Vector<Size, T>> 
{ 
    enum {ElementCount = Size}; 
}; 

這工作得很好,但比較不同特質的實例大小的時候,我有很多的警告與海灣合作委員會。所以我想我會用static const int ElementCount代替,但是現在GCC抱怨沒有找到未解決的外部(即ElementCount)。我該如何解決這個問題?我當然不能爲每個組合實例化Traits類。爲什麼GCC使用枚舉正確地看到了這一點,但沒有使用const static?

+0

您可以張貼表現出的問題,一定程度上最小的工作的例子嗎? – 2012-07-20 13:30:59

回答

0

由於您比較了來自不同枚舉的值,因此您會收到很多警告。

可以做出比較返回INT靜態函數:

template <int Size, typename T> 
class Traits<Vector<Size, T>> 
{ 
    enum {ElementCount = Size}; 

    static int GetElementCount() {return static_cast<int>(ElementCount);} 
};