【发布时间】:2011-11-24 17:07:35
【问题描述】:
我正在努力寻找以下代码无法编译的充分理由。 它给了我以下错误。
错误 2 错误 C2923:“std::pair”:“std::set::iterator”不是参数“_Ty1”的有效模板类型参数
我需要一点了解,为什么 C++ 不允许我在函数声明中使用模板参数,因为我使用 set::iterator 而不是 set::iterator 程序工作.
#include<iostream>
#include<set>
using namespace std;
template <typename T>
void print(const pair< set<T>::iterator, bool> &p) //<- Here is the problem
{
cout<<"Pair "<<*(p.first)<<" "<<p.second<<"\n";
}
int main() {
set<int> setOfInts;
setOfInts.insert(10);
pair<set<int>::iterator, bool > p = setOfInts.insert(30);
}
【问题讨论】:
标签: c++ templates visual-c++ stl metaprogramming