检测容器是否具有迭代器类型

时间:2017-12-02 10:13:18

标签: c++ templates stl

考虑以下伪代码:

template<class Container>
int some_function(const Container& container)
{
      if (container has iterator) { // 
            // get an element by its iterator
      } else {
            // do another action
      }
}

因此,我们有一个函数模板,它采用容器类型(例如,vector,list,valarray或其他东西)。是否可以确定(运行时)给定容器是否具有迭代器类型?编译时间?

1 个答案:

答案 0 :(得分:2)

您使用detection idiom

Sub RunMe()
For Each cell In Range("B1:ZZ1")
    If cell.Value = vbNullString Then
        cell.Value = Range("A1")
        Exit Sub
    End If
Next cell

End Sub