I have a template class that contains a std::map that stores pointers to T which refuses to compile:
std::map
template class Foo { public
You need typename:
typename
typename std::map::const_iterator begin() const { return items.begin(); }