我想确定一个序列的大小。对于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