Hi. Does anyone have any idea why the following code works in MSVC++ 6.0 but not in Dev-C++ 4.9.8.0? Thanks.
Code:
#include<iostream>
#include<iterator>
#include<vector>
#include<string>
using namespace std;
template <class T>
class Set
{
public:
void add(const T& anItem);
bool has(const T& targetItem);
friend ostream& operator <<(ostream& os, Set<T>& aSet)
{
vector<T>::iterator anIt;
for(anIt=aSet.theMembers.begin();anIt != aSet.theMembers.end();anIt++)
{
os<<(*anIt)<<" ";
os<<endl;
}
return os;
}
private:
vector<T> theMembers;
};
int main()
{
Set<int> s1;
s1.add(10);
cout<<s1;
cout<<s1.has(10)<<endl;
system("pause");
return 0;
}
template <class T>
void Set<T>::add(const T& anItem)
{
theMembers.push_back(anItem);
}
template<class T>
bool Set<T>::has(const T& targetItem)
{
vector<T>::iterator anIt;
for(anIt=theMembers.begin(); anIt != theMembers.end(); anIt++)
{
if((*anIt)==targetItem)
return true;
}
return false;
}