我有一个接受指针的模板化函数。
template <typename T>
void foo(const T* bar){}
如何更改 foo
以确保向我传递的是迭代器/指针?我假设有一个 static_assert
或一个 enable_if
方法可以做到这一点,但我似乎找不到它。
最佳答案
您可以使用 std::iterator_traits
来检查它是否是一个迭代器(或指针)
template <typename IT>
decltype(std::iterator_traits<IT>::iterator_category{}, void())
foo(IT bar);
关于c++ - 断言模板参数是迭代器/指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31675399/