我想確定一個序列的大小。對於STL中的所有序列,我可以使用.size()成員函數,但如果序列是一個數組,我會遇到麻煩。我如何以編程方式確定作爲參數傳遞的序列是數組類型還是STL序列類型。使用通用接口找到序列的大小
例如
template<typename sequence>
size_t find_size(sequence& s)
{
// if s has .size() member function
// return s.size()
//else if it is an array type
// return sizeof(s)
//else throw error
}
基本上我尋找在C++ 11
PS非成員尺寸功能,正如我們有非會員begin()和結束():由序列我指的是序列在STL中定義(它們都有.size()成員函數),包括數組作爲參數。
實際上,我想擁有這樣一個接口,以便它獨立於任何序列類型。 – 2012-02-19 00:27:49
我不確定你在問什麼。你只想使用一個函數而不是兩個來獲得相同的結果? – 2012-02-19 00:28:43
重載函數也很好。 – 2012-02-19 00:33:08