Hi, I have a problem with g++ 4.3.2 in -std=c++0x mode. Here is some code which works fine:
struct My_data { typedef std::map<Key, My_data, Compare> My_Map; (***) typedef typename My_map::iterator My_iterator; // data members My_iterator cousin_; }; typedef std::map<Key, My_data, Compare> My_Map; My_map Family; Note, that it uses My_data as the data_value for the std::map type defined in the My_data struct *itself*. This works fine. But now I want to change std::map by std::unordered_map. So do I, with appropriate hash function and Equality comparator. But then, g++ 4.3.2 gives me the following error: error: no type named ‘iterator’ in ‘class std::unordered_map<...' at line (***). I know this does come from the fact that I'm using My_data as a template parameter inside the definition of the struct My_data itself. But... it did work for std::map... so why shouldn't it work for unordered_map ? Is there a workaround ? is this a bug of libstd++ ? Thank you very much ! sam _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus