相关疑难解决方法(0)

如何检查模板参数是否是迭代器类型?

template<class T>
struct is_iterator
{
    static const bool value = ??? // What to write ???
};

int main()
{
    assert(false == is_iterator<int>::value);
    assert(true == is_iterator<vector<int>::iterator>::value);
    assert(true == is_iterator<list<int>::iterator>::value);
    assert(true == is_iterator<string::iterator>::value);
    assert(true == is_iterator<char*>::value); // a raw pointer is also an iterator
}
Run Code Online (Sandbox Code Playgroud)

问题是:如何使五个断言语句通过?

c++ templates sfinae

10
推荐指数
2
解决办法
3507
查看次数

标签 统计

c++ ×1

sfinae ×1

templates ×1