From c88c2f9cff04d1d5ba732b785d85ebd8dcb7ada1 Mon Sep 17 00:00:00 2001 From: Mike Kremer Date: Mon, 7 Dec 2009 13:14:16 +0000 Subject: [PATCH] Made iterator-types entirely STL compliant by fully specifying the iterator_traits attributes. git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@251 fdac6126-5c0c-442c-9429-916003d36597 --- src/OpenMesh/Core/Mesh/IteratorsT.hh | 34 ++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/src/OpenMesh/Core/Mesh/IteratorsT.hh b/src/OpenMesh/Core/Mesh/IteratorsT.hh index ec12b4b6..42a93c67 100644 --- a/src/OpenMesh/Core/Mesh/IteratorsT.hh +++ b/src/OpenMesh/Core/Mesh/IteratorsT.hh @@ -97,11 +97,15 @@ public: typedef typename Mesh::VertexHandle value_handle; #if 0 + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef const value_type& reference; typedef const value_type* pointer; typedef const Mesh* mesh_ptr; typedef const Mesh& mesh_ref; #else + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef value_type& reference; typedef value_type* pointer; typedef Mesh* mesh_ptr; @@ -109,8 +113,6 @@ public: #endif - - /// Default constructor. VertexIterT() : mesh_(0), skip_bits_(0) @@ -259,11 +261,15 @@ public: typedef typename Mesh::VertexHandle value_handle; #if 1 + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef const value_type& reference; typedef const value_type* pointer; typedef const Mesh* mesh_ptr; typedef const Mesh& mesh_ref; #else + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef value_type& reference; typedef value_type* pointer; typedef Mesh* mesh_ptr; @@ -421,11 +427,15 @@ public: typedef typename Mesh::HalfedgeHandle value_handle; #if 0 + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef const value_type& reference; typedef const value_type* pointer; typedef const Mesh* mesh_ptr; typedef const Mesh& mesh_ref; #else + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef value_type& reference; typedef value_type* pointer; typedef Mesh* mesh_ptr; @@ -583,11 +593,15 @@ public: typedef typename Mesh::HalfedgeHandle value_handle; #if 1 + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef const value_type& reference; typedef const value_type* pointer; typedef const Mesh* mesh_ptr; typedef const Mesh& mesh_ref; #else + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef value_type& reference; typedef value_type* pointer; typedef Mesh* mesh_ptr; @@ -745,11 +759,15 @@ public: typedef typename Mesh::EdgeHandle value_handle; #if 0 + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef const value_type& reference; typedef const value_type* pointer; typedef const Mesh* mesh_ptr; typedef const Mesh& mesh_ref; #else + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef value_type& reference; typedef value_type* pointer; typedef Mesh* mesh_ptr; @@ -907,11 +925,15 @@ public: typedef typename Mesh::EdgeHandle value_handle; #if 1 + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef const value_type& reference; typedef const value_type* pointer; typedef const Mesh* mesh_ptr; typedef const Mesh& mesh_ref; #else + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef value_type& reference; typedef value_type* pointer; typedef Mesh* mesh_ptr; @@ -1069,11 +1091,15 @@ public: typedef typename Mesh::FaceHandle value_handle; #if 0 + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef const value_type& reference; typedef const value_type* pointer; typedef const Mesh* mesh_ptr; typedef const Mesh& mesh_ref; #else + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef value_type& reference; typedef value_type* pointer; typedef Mesh* mesh_ptr; @@ -1231,11 +1257,15 @@ public: typedef typename Mesh::FaceHandle value_handle; #if 1 + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef const value_type& reference; typedef const value_type* pointer; typedef const Mesh* mesh_ptr; typedef const Mesh& mesh_ref; #else + typedef std::bidirectional_iterator_tag iterator_category; + typedef ptrdiff_t difference_type; typedef value_type& reference; typedef value_type* pointer; typedef Mesh* mesh_ptr;