1
0
forked from 0ad/0ad

Fix compilation with g++

This was SVN commit r3094.
This commit is contained in:
prefect 2005-11-05 23:03:55 +00:00
parent faaee7d1b5
commit fb115d19b9
2 changed files with 12 additions and 7 deletions

View File

@ -236,9 +236,14 @@ extern float fmaxf(float a, float b);
# define STL_HASH_MULTIMAP __gnu_cxx::hash_multimap
# define STL_HASH_SET __gnu_cxx::hash_set
# define STL_HASH_MULTISET __gnu_cxx::hash_multiset
# define STL_HASH_VALUE __gnu_cxx::hash
# define STL_SLIST __gnu_cxx::slist
template<typename T>
size_t STL_HASH_VALUE(T v)
{
return __gnu_cxx::hash<T>()(v);
}
// Hack: GCC Doesn't have a hash instance for std::string included (and it looks
// like they won't add it - marked resolved/wontfix in the gcc bugzilla)
namespace __gnu_cxx

View File

@ -38,7 +38,7 @@ private:
template<typename T>
T DeltaArray2D<T>::get(int x, int y)
{
Data::iterator it = m_Data.find(std::make_pair(x, y));
typename Data::iterator it = m_Data.find(std::make_pair(x, y));
if (it == m_Data.end())
return getOld(x, y);
else
@ -48,7 +48,7 @@ T DeltaArray2D<T>::get(int x, int y)
template<typename T>
void DeltaArray2D<T>::set(int x, int y, const T& val)
{
Data::iterator it = m_Data.find(std::make_pair(x, y));
typename Data::iterator it = m_Data.find(std::make_pair(x, y));
if (it == m_Data.end())
m_Data.insert(std::make_pair(std::make_pair(x, y), std::make_pair(getOld(x, y), val)));
else
@ -59,9 +59,9 @@ void DeltaArray2D<T>::set(int x, int y, const T& val)
template <typename T>
void DeltaArray2D<T>::OverlayWith(const DeltaArray2D<T>& overlayer)
{
for (Data::const_iterator it = overlayer.m_Data.begin(); it != overlayer.m_Data.end(); ++it)
for (typename Data::const_iterator it = overlayer.m_Data.begin(); it != overlayer.m_Data.end(); ++it)
{
Data::iterator it2 = m_Data.find(it->first);
typename Data::iterator it2 = m_Data.find(it->first);
if (it2 == m_Data.end())
m_Data.insert(*it);
else
@ -76,14 +76,14 @@ void DeltaArray2D<T>::OverlayWith(const DeltaArray2D<T>& overlayer)
template <typename T>
void DeltaArray2D<T>::Undo()
{
for (Data::iterator it = m_Data.begin(); it != m_Data.end(); ++it)
for (typename Data::iterator it = m_Data.begin(); it != m_Data.end(); ++it)
setNew(it->first.first, it->first.second, it->second.first);
}
template <typename T>
void DeltaArray2D<T>::Redo()
{
for (Data::iterator it = m_Data.begin(); it != m_Data.end(); ++it)
for (typename Data::iterator it = m_Data.begin(); it != m_Data.end(); ++it)
setNew(it->first.first, it->first.second, it->second.second);
}