0
我目前有一些奇怪的東西正在進行。我正在嘗試使用VC++編譯器編寫一個模板類。VC++類模板使用typedef類型實現函數
在我的課程中,爲了清晰起見,我找到了幾個typedef。實際執行我有我的headerfile之外
template<typename T,
typename = typename std::enable_if<std::is_arithmetic<T>::value,T>::type>
class Integer
{
public:
typedef T value_type;
typedef Integer <value_type> Self;
typedef Self& SelfReference;
typedef Self* SelfRawPointer;
...
public:
SelfReference operator =(const SelfReference);
* .tcc - 文件:
...
template<typename T> Integer<T>::SelfReference Integer<T>::operator =(const
Integer<T>::SelfReference rhs)
{
return this->assign(rhs);
};
...
與過去在gcc我有沒有做這種方式,但現在在Windows上的任何問題編譯器抱怨'SelfReference':C2061:語法錯誤:標識符'SelfReference'
我不知道什麼是錯的,因爲它使用gcc它在過去工作過...我錯過了什麼嗎?這個問題不會出現,如果我寫函數內聯。我現在只是好奇,爲什麼在窗戶上我有這種問題!