On Thu, 6 Dec 2007, vheinitz wrote:
Hello, I am porting code which was compiling on gcc 3.2.2 to gcc 4 I am using (GCC) 4.1.2 20061115 (prerelease) (SUSE Linux) Looks like std::map hasn't typedef data_type whereas map::key_type is still there. SGI's implementation seems to provide map::data_type Is there any other way to get data_type from std::map? P.S.: Code I have to port has sth. like this: template<typename T> T::data_type GetSomeDataFromMap( T m ) { return m[0]; }
std::map::mapped_type regards, lajos GCC 4.1.2 source code: template <typename _Key, typename _Tp, typename _Compare = std::less<_Key>, typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > > class map { public: typedef _Key key_type; typedef _Tp mapped_type; typedef std::pair<const _Key, _Tp> value_type; typedef _Compare key_compare; typedef _Alloc allocator_type; SGI STL source code: template <class _Key, class _Tp, class _Compare, class _Alloc> class map { public: // requirements: __STL_CLASS_REQUIRES(_Tp, _Assignable); __STL_CLASS_BINARY_FUNCTION_CHECK(_Compare, bool, _Key, _Key); // typedefs: typedef _Key key_type; typedef _Tp data_type; typedef _Tp mapped_type; typedef pair<const _Key, _Tp> value_type; typedef _Compare key_compare; _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus