0
我繼承了一些代碼,並且卡住了我認爲應該是一個簡單的更新。將std :: vector <const Type*>轉換爲const std :: vector <T, A>&Vec
我有以下功能
template<typename T>
class ArrayRef {
public:
typedef const T *iterator;
typedef const T *const_iterator;
private:
/// The start of the array, in an external buffer.
const T *Data;
public:
/// Construct an ArrayRef from a std::vector.
template<typename A>
ArrayRef(const std::vector<T, A> &Vec)
: Data(Vec.empty() ? (T*)0 : &Vec[0]), Length(Vec.size()) {}
};
,我需要通過一個載體,具有以下定義,該功能。
std::vector<const myType*> myVector(4);
要做到這一點,最簡單的方法是什麼?
是函數的'T'和'A'模板參數嗎?在這種情況下,它應該工作。如果它們不是,它們是什麼類型,'T'與'myType'有關? – Grizzly 2013-03-14 18:51:54
我把整個函數定義放進去了,這是否更清楚? – 2013-03-14 18:55:49
代碼中的T是什麼? – 2013-03-14 18:56:26