比方說,我有一個基於模板ThingType
的課程。在標題中,我用這個typedef
一個依賴類型VectorThingType
。我想從方法GetVectorOfThings()
中返回。如果我將VectorThingType
設置爲返回類型,則會出現Does not name a type
錯誤,因爲該類型未在此範圍內定義。有沒有辦法在不重複typedef
中的代碼的情況下做到這一點?如何從模板類方法返回依賴類型?
#include <vector>
#include <iostream>
template< typename ThingType >
class Thing
{
public:
ThingType aThing;
typedef std::vector<ThingType> VectorThingType;
VectorThingType GetVectorOfThings();
Thing(){};
~Thing(){};
};
template< typename ThingType >
//VectorThingType // Does not name a type
std::vector<ThingType> // Duplication of code from typedef
Thing<ThingType>
::GetVectorOfThings() {
VectorThingType v;
v.push_back(this->aThing);
v.push_back(this->aThing);
return v;
}
真的很酷。謝謝! – 2015-04-03 17:30:05