What's wrong with this program (it compiles with g++ 3.2.1, but reports an error on the UtSet::_Base typedef)
#include
template class UtSet: public std::set<_Key>{
public:
typedef std::set<_Key> _Base;
};
class Event;
class Mask {
public:
typedef UtSet EventPtrSet;
Mask() {}
~Mask() {}
EventPtrSet mEvents;
};
icc says
/tools/linux/icc7.0/bin/c++ -c /home/cds/apl/clean/src/shell/bad.cxx -o bad.o
/home/cds/apl/clean/src/shell/bad.cxx(7): error: function "std::_Tree<_Traits>::_Key [with _Traits=std::_Tset_traits, std::allocator, false>]" is not a type name
typedef std::set<_Key> _Base;
^
detected during instantiation of class "UtSet<_Key> [with _Key=Event *]" at line 19
-----------------
I tried sprinkling 'typename' keywords around without any visible impact.
error: function "..." is not a type name
For more complete information about compiler optimizations, see our Optimization Notice.


