diff --git a/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_2_iterators.h b/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_2_iterators.h index 1fde617881b..4f3c2946b67 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_2_iterators.h +++ b/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_2_iterators.h @@ -21,6 +21,8 @@ #ifndef CGAL_ARRANGEMENT_2_ITERATORS_H #define CGAL_ARRANGEMENT_2_ITERATORS_H +#include + /*! \file * Definitions of auxiliary iterator adaptors. */ @@ -556,7 +558,11 @@ public: } //namespace CGAL namespace std { - template struct hash; + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4099) // For VC10 it is class hash +#endif template @@ -642,5 +648,10 @@ struct hash(&*i) / sizeof(typename I::value_type); } }; + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + } #endif diff --git a/BGL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h b/BGL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h index 94ac62dc5b2..f4b8e19ccfb 100644 --- a/BGL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h +++ b/BGL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h @@ -20,6 +20,8 @@ #ifndef CGAL_BOOST_GRAPH_GRAPH_TRAITS_HALFEDGEDS_H #define CGAL_BOOST_GRAPH_GRAPH_TRAITS_HALFEDGEDS_H +#include + #include #include #include @@ -30,7 +32,6 @@ #include #include - #include #ifndef CGAL_NO_DEPRECATED_CODE @@ -219,7 +220,11 @@ public: namespace std { - template struct hash; + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4099) // For VC10 it is class hash +#endif template struct hash > { @@ -230,5 +235,11 @@ namespace std { return fct(e.halfedge()); } }; + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + } + #endif // CGAL_BOOST_GRAPH_GRAPH_TRAITS_HALFEDGEDS_H diff --git a/BGL/include/CGAL/boost/graph/graph_traits_Triangulation_2.h b/BGL/include/CGAL/boost/graph/graph_traits_Triangulation_2.h index f2142ca3c22..5d22c196372 100644 --- a/BGL/include/CGAL/boost/graph/graph_traits_Triangulation_2.h +++ b/BGL/include/CGAL/boost/graph/graph_traits_Triangulation_2.h @@ -20,6 +20,8 @@ #ifndef CGAL_GRAPH_TRAITS_TRIANGULATION_2_H #define CGAL_GRAPH_TRAITS_TRIANGULATION_2_H +#include + #include #include #include @@ -828,7 +830,12 @@ namespace boost { namespace std { - template struct hash; + + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4099) // For VC10 it is class hash +#endif template < class T, class EdgeBase> struct hash > { @@ -847,6 +854,11 @@ namespace std { return hash_value(e); } }; + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + } // namespace std //#include diff --git a/STL_Extension/include/CGAL/Compact_container.h b/STL_Extension/include/CGAL/Compact_container.h index df521d6e8cb..637cfff6f1e 100644 --- a/STL_Extension/include/CGAL/Compact_container.h +++ b/STL_Extension/include/CGAL/Compact_container.h @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -1170,7 +1171,11 @@ namespace internal { } //namespace CGAL namespace std { - template struct hash; + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4099) // For VC10 it is class hash +#endif template < class DSC, bool Const > struct hash > @@ -1181,6 +1186,10 @@ namespace std { return reinterpret_cast(&*i) / sizeof(typename DSC::value_type); } }; +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + } #endif // CGAL_COMPACT_CONTAINER_H diff --git a/STL_Extension/include/CGAL/In_place_list.h b/STL_Extension/include/CGAL/In_place_list.h index ff29afcfe59..8f405bac5a2 100644 --- a/STL_Extension/include/CGAL/In_place_list.h +++ b/STL_Extension/include/CGAL/In_place_list.h @@ -34,6 +34,7 @@ #include #include #include +#include namespace CGAL { @@ -772,7 +773,11 @@ void In_place_list::sort() { } //namespace CGAL namespace std { - template struct hash; + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4099) // For VC10 it is class hash +#endif template < class T, class Alloc > struct hash > @@ -795,5 +800,10 @@ namespace std { return reinterpret_cast(ptr)/ sizeof(T); } }; + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + } #endif // CGAL_IN_PLACE_LIST_H diff --git a/Surface_mesh/include/CGAL/Surface_mesh/Surface_mesh.h b/Surface_mesh/include/CGAL/Surface_mesh/Surface_mesh.h index 52b7ce04793..7a34c336c77 100644 --- a/Surface_mesh/include/CGAL/Surface_mesh/Surface_mesh.h +++ b/Surface_mesh/include/CGAL/Surface_mesh/Surface_mesh.h @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -2971,7 +2972,11 @@ returns `i` as hash value for the index types `Vertex_index`, `Halfedge_index`, namespace std { - template struct hash; + +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4099) // For VC10 it is class hash +#endif template <> struct hash @@ -3022,6 +3027,12 @@ namespace boost { return i; } }; + +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + } + #endif /* CGAL_SURFACE_MESH_H */