I am encountering the following issue with STL map iterator - wrapped
within a template. ( I am wrapping it withing a template since I want
to hide the map implementation from the user . At a later point - this
could be a custom hashmap (as opposed to rb-tree map that stl
provides ).
#include <string>
#include <map>
#include <iostream>
template<typename K, typename Vclass TestMap
{
public:
void insert(const std::pair<K, V& ap)
{
data.insert(ap);
}
void list()
{
std::map<K, V>::iterator it = data.begin();
//compiler errors here - error: expected
`;' before "it"
for (; it != data.end(); ++it)
{
std::cout << it->first << " --" << it->second << "\n";
}
}
private:
std::map<K, Vdata;
};
using std::string;
int main()
{
TestMap<std::string, intdata;
data.insert(std::pair<string, int >("Hello", 1));
data.insert(std::pair<string, int >("World", 1));
return EXIT_SUCCESS;
}
The compiler errors out with the following message.
test.cxx:17: error: expected `;' before "it"
Any idea if I am missing anything here.