diff --git a/Utilities/ITK/Code/Common/itk_hash_map.h b/Utilities/ITK/Code/Common/itk_hash_map.h index 9e37f4837b63b38c72b63e8e708c73ee07ef5cd1..9a1712fe452d4c6018267ddd8c1692e6e1a5395c 100644 --- a/Utilities/ITK/Code/Common/itk_hash_map.h +++ b/Utilities/ITK/Code/Common/itk_hash_map.h @@ -185,7 +185,9 @@ public: bool empty() const { return rep.empty(); } void swap(self& hs) { rep.swap(hs.rep); } +#if _MSC_VER != 1600 friend bool operator==ITK_FRIEND_TEMPLATE_FUNCTION_ARGUMENT(self)(const self &, const self &); +#endif iterator begin() { return rep.begin(); } iterator end() { return rep.end(); } @@ -289,7 +291,9 @@ public: bool empty() const { return rep.empty(); } void swap(self& hs) { rep.swap(hs.rep); } +#if _MSC_VER != 1600 friend bool operator==ITK_FRIEND_TEMPLATE_FUNCTION_ARGUMENT(self)(const self &, const self &); +#endif iterator begin() { return rep.begin(); } iterator end() { return rep.end(); } diff --git a/Utilities/ITK/Code/Common/itk_hashtable.h b/Utilities/ITK/Code/Common/itk_hashtable.h index e166f493f50c1b378b3380f5de29fd5dde44ea2e..d07c3b3368356f25f0d1dd48d15b000139f4fff8 100644 --- a/Utilities/ITK/Code/Common/itk_hashtable.h +++ b/Utilities/ITK/Code/Common/itk_hashtable.h @@ -471,7 +471,9 @@ public: const_iterator end() const { return const_iterator((node*)0, this); } +#if _MSC_VER != 1600 friend bool operator==ITK_FRIEND_TEMPLATE_FUNCTION_ARGUMENT(self)(const self&,const self&); +#endif public: @@ -1144,14 +1146,17 @@ void hashtable_base<Value, Alloc>::copy_from(const hashtable_base<Value, Alloc>& // A few compatability fixes. Placed here for automatic include in // both the hash_set and the hash_map sources. + # if defined (_MSC_VER) || defined(__BORLANDC__) || ((defined(__ICC)||defined(__ECC)) && defined(linux)) namespace std { +#if _MSC_VER != 1600 template <class T> struct identity : public std::unary_function<T, T> { public: const T& operator()(const T& x) const { return x; } }; +#endif } template <class _Pair>