$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: huseyinakcan_at_[hidden]
Date: 2007-06-29 22:27:02
Author: huseyinakcan
Date: 2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
New Revision: 7319
URL: http://svn.boost.org/trac/boost/changeset/7319
Log:
rest of the concept test classes.
Added:
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.cpp
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.t.cpp
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.cpp
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.t.cpp
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.cpp
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.t.cpp
Text files modified: 
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/Makefile.dbg_exc_mt           |    20 ++++++++++++++++++--                    
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.hpp    |     2 +-                                      
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp |    12 +++++++-----                            
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp   |     7 +++++--                                 
   4 files changed, 31 insertions(+), 10 deletions(-)
Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/Makefile.dbg_exc_mt
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/Makefile.dbg_exc_mt	(original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/Makefile.dbg_exc_mt	2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
@@ -9,30 +9,36 @@
 PACKAGE_OBJECTS=backward_hds_concept.o \
         bidirectional_hds_concept.o \
         facet_hds_concept.o \
+        facet_list_hds_concept.o \
         forward_hds_concept.o \
         hds_concept.o \
+        halfedge_list_hds_concept.o \
         mutable_forward_hds_concept.o \
         mutable_backward_hds_concept.o \
         mutable_bidirectional_hds_concept.o \
         mutable_hds_concept.o \
         mutable_facet_hds_concept.o \
         mutable_vertex_hds_concept.o \
-        vertex_hds_concept.o
+        vertex_hds_concept.o \
+        vertex_list_hds_concept.o
 
 PACKAGE_LIBRARY=libhds_concepts.a
 
 TEST_DRIVERS=backward_hds_concept.t \
         bidirectional_hds_concept.t \
         facet_hds_concept.t \
+        facet_list_hds_concept.t \
         forward_hds_concept.t \
         hds_concept.t \
+        halfedge_list_hds_concept.t \
         mutable_forward_hds_concept.t \
         mutable_backward_hds_concept.t \
         mutable_bidirectional_hds_concept.t \
         mutable_hds_concept.t \
         mutable_facet_hds_concept.t \
         mutable_vertex_hds_concept.t \
-        vertex_hds_concept.t
+        vertex_hds_concept.t \
+        vertex_list_hds_concept.t
 
 .SUFFIXES:
 .SUFFIXES: ${TARGET}.o .o .cpp .hpp
@@ -54,6 +60,7 @@
 facet_hds_concept.o: hds_concept.hpp
 forward_hds_concept.o: hds_concept.hpp  
 hds_concept.o: 
+halfedge_list_hds_concept.o: hds_concept.hpp
 mutable_forward_hds_concept.o: forward_hds_concept.hpp \
         hds_concept.hpp mutable_hds_concept.hpp
 mutable_backward_hds_concept.o: backward_hds_concept.hpp \
@@ -67,6 +74,7 @@
 mutable_vertex_hds_concept.o: vertex_hds_concept.hpp \
         mutable_hds_concept.hpp
 vertex_hds_concept.o: hds_concept.hpp
+vertex_list_hds_concept.o: vertex_hds_concept.hpp
 
 
 ### BUILDING TEST DRIVERS AND DEPENDENCIES OF TEST DRIVER
@@ -81,8 +89,11 @@
 bidirectional_hds_concept.t.o: forward_hds_concept.hpp \
         backward_hds_concept.hpp hds_concept.hpp
 facet_hds_concept.t.o: hds_concept.hpp
+facet_list_hds_concept.t.o: hds_concept.hpp \
+		facet_hds_concept.hpp
 forward_hds_concept.t.o: hds_concept.hpp  
 hds_concept.t.o: 
+halfedge_list_hds_concept.t.o: hds_concept.hpp
 mutable_forward_hds_concept.t.o: forward_hds_concept.hpp \
         hds_concept.hpp mutable_hds_concept.hpp
 mutable_backward_hds_concept.t.o: backward_hds_concept.hpp \
@@ -96,6 +107,7 @@
 mutable_vertex_hds_concept.t.o: vertex_hds_concept.hpp \
         mutable_hds_concept.hpp
 vertex_hds_concept.t.o: hds_concept.hpp
+vertex_list_hds_concept.t.o: vertex_hds_concept.hpp
 
 %.t.o: %.t.cpp %.h
         ${CXX}  ${CXXFLAGS} ${CXXINCLUDES} -c -o $*.t.o $<
@@ -104,8 +116,11 @@
 bidirectional_hds_concept.t: forward_hds_concept.o \
         backward_hds_concept.o hds_concept.o
 facet_hds_concept.t.o: hds_concept.o
+facet_list_hds_concept.t.o: hds_concept.o \
+		facet_hds_concept.o
 forward_hds_concept.t.o: hds_concept.o  
 hds_concept.t.o: 
+halfedge_list_hds_concept.t.o: hds_concept.o
 mutable_forward_hds_concept.t.o: forward_hds_concept.o \
         hds_concept.o mutable_hds_concept.o
 mutable_backward_hds_concept.t.o: backward_hds_concept.o \
@@ -119,6 +134,7 @@
 mutable_vertex_hds_concept.o: vertex_hds_concept.o \
         mutable_hds_concept.o
 vertex_hds_concept.t.o: hds_concept.o
+vertex_list_hds_concept.t.o: vertex_hds_concept.o
 
 
 ## UTILITIES
Added: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.cpp	2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
@@ -0,0 +1,4 @@
+// facet_list_hds_concept.cpp    -*- C++ -*-
+
+#include <boost/hdstl/hds_concepts/facet_list_hds_concept.hpp>
+
Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.hpp	(original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.hpp	2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
@@ -160,7 +160,7 @@
        {
            using namespace boost;
            function_requires<HDSConcept<HDS> >();
-           function_requires<FacetHDSConcept>();
+           function_requires<FacetHDSConcept<HDS> >();
            function_requires<ForwardIteratorConcept<facet_iterator> >();
            function_requires<ConvertibleConcept<size_type,int> >();
 
Added: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.t.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.t.cpp	2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
@@ -0,0 +1,110 @@
+//facet_list_hds_concept.t.cpp   -*- C++ -*-
+//
+//@OVERVIEW:  The component under test is a concept-checking class.  We
+// proceed with the standard test plan for such a class.
+//
+//@TEST_PLAN:  Create a (loose) archetype of the concept, and verify
+// (using the Boost.ConceptCheck library macros) that it satisfies all
+// the concept requirements of the concept.  Note that the purpose of
+// this test driver is to verify the validity of the concept checking
+// class, not of the archetype.  This is why it suffices to take the
+// 'halfedge_descriptor' as an 'int', although a real archetype would make
+// this into a custom-made class with the tailored minimal requirements.
+
+#include <boost/hdstl/hds_concepts/facet_list_hds_concept.hpp>
+#include <boost/test/minimal.hpp>
+#include <boost/concept_check.hpp>
+
+namespace hdstl1 {
+
+    struct facet_list_hds_archetype {
+        // This 'struct', intentionally defined in a namespace different from
+        // 'hdstl', the 'hds_traits' specialization defined in the namespace
+        // 'hdstl', and the supporting function 'opposite', defined in the same
+        // namespace as this 'struct' to take advantage of ADL
+        // (argument-dependent lookup) provide an archetype for the 'HDS'
+        // concept.
+
+        typedef int* facet_iterator;
+        typedef int halfedge_descriptor;
+        typedef int facet_descriptor;
+        typedef int size_type;
+    };
+
+    facet_list_hds_archetype::halfedge_descriptor
+        opposite(facet_list_hds_archetype::halfedge_descriptor h,  
+                const facet_list_hds_archetype&)
+    {
+        return h;
+    }
+    
+    facet_list_hds_archetype::facet_descriptor
+        facet(facet_list_hds_archetype::halfedge_descriptor,  
+                const facet_list_hds_archetype&)
+    {
+        return facet_list_hds_archetype::facet_descriptor();
+    }
+
+    facet_list_hds_archetype::facet_iterator
+        facets_begin(const facet_list_hds_archetype&)
+    {
+        return facet_list_hds_archetype::facet_iterator();
+    }
+    
+    facet_list_hds_archetype::facet_iterator
+        facets_end(const facet_list_hds_archetype&)
+    {
+        return facet_list_hds_archetype::facet_iterator();
+    }
+    
+    facet_list_hds_archetype::size_type
+        num_facets(const facet_list_hds_archetype&)
+    {
+        return facet_list_hds_archetype::size_type();
+    }
+
+}  // namespace hdstl
+
+namespace boost {
+namespace hdstl {
+    
+    template <>
+    struct hds_traits<hdstl1::facet_list_hds_archetype>
+    {
+        typedef hdstl1::facet_list_hds_archetype::halfedge_descriptor
+                halfedge_descriptor;
+        typedef hdstl1::facet_list_hds_archetype::facet_descriptor
+                facet_descriptor;
+        typedef hdstl1::facet_list_hds_archetype::facet_iterator
+                facet_iterator;
+        typedef hdstl1::facet_list_hds_archetype::size_type size_type;
+        enum { supports_vertices = false};
+        static const int supports_facets = true;
+    };
+    
+}  // namespace hdstl
+}  // namespace boost
+
+// ===========================================================================
+//                              BOOST TEST APPARATUS
+// ===========================================================================
+
+template <class HDS>
+struct class_concept_requirements
+{
+    BOOST_CLASS_REQUIRE(HDS, boost::hdstl::concepts, FacetListHDSConcept);
+};
+
+template <class HDS>
+bool concept_requirements()
+{
+    boost::function_requires<boost::hdstl::concepts::FacetListHDSConcept<HDS> >();
+    class_concept_requirements<HDS>(); // force instantiation
+    return true;
+}
+
+int test_main(int, char **)
+{
+    BOOST_CHECK(( concept_requirements<hdstl1::facet_list_hds_archetype>() ));
+    return 0;
+}
Added: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.cpp	2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
@@ -0,0 +1,4 @@
+// halfedge_list_hds_concept.cpp    -*- C++ -*-
+
+#include <boost/hdstl/hds_concepts/halfedge_list_hds_concept.hpp>
+
Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp	(original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp	2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
@@ -93,7 +93,7 @@
 //      void constraints() 
 //      {
 //          using namespace boost;
-//          function_requires<HDSConcept>();
+//          function_requires<HDSConcept<HDS> >();
 //          function_requires<DefaultConstructibleConcept<halfedge_descriptor> >();
 //          function_requires<CopyConstructibleConcept<halfedge_descriptor> >();
 //          function_requires<EqualityComparableConcept<halfedge_descriptor> >();
@@ -119,7 +119,9 @@
 #ifndef BOOST_HDSTL_CONCEPTS_HALFEDGE_LIST_HDS_CONCEPT_HPP
 #define BOOST_HDSTL_CONCEPTS_HALFEDGE_LIST_HDS_CONCEPT_HPP 1
 
-#include <boost/concepts.h>
+#include <boost/concept_check.hpp>
+#include <boost/hdstl/hds_traits.hpp>
+#include <boost/hdstl/hds_concepts/hds_concept.hpp>
 
 namespace boost {
 namespace hdstl{
@@ -142,7 +144,7 @@
        // OPAQUE TYPES
        typedef typename hds_traits<HDS>::halfedge_iterator  halfedge_iterator;
        typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
-       typedef typename hds_traits<HDS>::halfedges_size_type halfedges_size_type;
+       typedef typename hds_traits<HDS>::size_type size_type;
        // The specialization of 'hds_traits<HDS>' must have these required
        // types, obeying the types requirements stated in the detailed
        // description of the 'HalfedgeListHDS' concept on page 
@@ -155,13 +157,13 @@
            // [halfedgelisthdsconcept].
        {
            using namespace boost;
-           function_requires<HDSConcept>();
+           function_requires<HDSConcept<HDS> >();
            function_requires<DefaultConstructibleConcept<halfedge_descriptor> >();
            function_requires<CopyConstructibleConcept<halfedge_descriptor> >();
            function_requires<EqualityComparableConcept<halfedge_descriptor> >();
            function_requires<AssignableConcept<halfedge_descriptor> >();
            function_requires<ForwardIteratorConcept<halfedge_iterator> >();
-           function_requires<ConvertibleConcept<halfedge_size_type> >();
+           function_requires<ConvertibleConcept<size_type,int> >();
            const_constraints(hds);
        }
 
Added: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.t.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.t.cpp	2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
@@ -0,0 +1,109 @@
+//halfedge_list_hds_concept.t.cpp   -*- C++ -*-
+//
+//@OVERVIEW:  The component under test is a concept-checking class.  We
+// proceed with the standard test plan for such a class.
+//
+//@TEST_PLAN:  Create a (loose) archetype of the concept, and verify
+// (using the Boost.ConceptCheck library macros) that it satisfies all
+// the concept requirements of the concept.  Note that the purpose of
+// this test driver is to verify the validity of the concept checking
+// class, not of the archetype.  This is why it suffices to take the
+// 'halfedge_descriptor' as an 'int', although a real archetype would make
+// this into a custom-made class with the tailored minimal requirements.
+
+#include <boost/hdstl/hds_concepts/halfedge_list_hds_concept.hpp>
+#include <boost/test/minimal.hpp>
+#include <boost/concept_check.hpp>
+
+namespace hdstl1 {
+
+    struct halfedge_list_hds_archetype {
+        // This 'struct', intentionally defined in a namespace different from
+        // 'hdstl', the 'hds_traits' specialization defined in the namespace
+        // 'hdstl', and the supporting function 'opposite', defined in the same
+        // namespace as this 'struct' to take advantage of ADL
+        // (argument-dependent lookup) provide an archetype for the 'HDS'
+        // concept.
+
+        typedef int* halfedge_iterator;
+        typedef int halfedge_descriptor;
+        typedef int size_type;
+    };
+
+    halfedge_list_hds_archetype::halfedge_descriptor
+        opposite(halfedge_list_hds_archetype::halfedge_descriptor h,  
+                const halfedge_list_hds_archetype&)
+    {
+        return h;
+    }
+    
+    halfedge_list_hds_archetype::halfedge_descriptor
+        halfedge(halfedge_list_hds_archetype::halfedge_descriptor,  
+                const halfedge_list_hds_archetype&)
+    {
+        return halfedge_list_hds_archetype::halfedge_descriptor();
+    }
+
+    halfedge_list_hds_archetype::halfedge_iterator
+        halfedges_begin(const halfedge_list_hds_archetype&)
+    {
+        return halfedge_list_hds_archetype::halfedge_iterator();
+    }
+    
+    halfedge_list_hds_archetype::halfedge_iterator
+        halfedges_end(const halfedge_list_hds_archetype&)
+    {
+        return halfedge_list_hds_archetype::halfedge_iterator();
+    }
+    
+    halfedge_list_hds_archetype::size_type
+        num_halfedges(const halfedge_list_hds_archetype&)
+    {
+        return halfedge_list_hds_archetype::size_type();
+    }
+
+}  // namespace hdstl
+
+namespace boost {
+namespace hdstl {
+    
+    template <>
+    struct hds_traits<hdstl1::halfedge_list_hds_archetype>
+    {
+        typedef hdstl1::halfedge_list_hds_archetype::halfedge_descriptor
+                halfedge_descriptor;
+        typedef hdstl1::halfedge_list_hds_archetype::halfedge_descriptor
+                halfedge_descriptor;
+        typedef hdstl1::halfedge_list_hds_archetype::halfedge_iterator
+                halfedge_iterator;
+        typedef hdstl1::halfedge_list_hds_archetype::size_type size_type;
+        enum { supports_vertices = false};
+        static const int supports_facets = true;
+    };
+    
+}  // namespace hdstl
+}  // namespace boost
+
+// ===========================================================================
+//                              BOOST TEST APPARATUS
+// ===========================================================================
+
+template <class HDS>
+struct class_concept_requirements
+{
+    BOOST_CLASS_REQUIRE(HDS, boost::hdstl::concepts, HalfedgeListHDSConcept);
+};
+
+template <class HDS>
+bool concept_requirements()
+{
+    boost::function_requires<boost::hdstl::concepts::HalfedgeListHDSConcept<HDS> >();
+    class_concept_requirements<HDS>(); // force instantiation
+    return true;
+}
+
+int test_main(int, char **)
+{
+    BOOST_CHECK(( concept_requirements<hdstl1::halfedge_list_hds_archetype>() ));
+    return 0;
+}
Added: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.cpp	2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
@@ -0,0 +1,4 @@
+// vertex_list_hds_concept.cpp    -*- C++ -*-
+
+#include <boost/hdstl/hds_concepts/vertex_list_hds_concept.hpp>
+
Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp	(original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp	2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
@@ -109,7 +109,7 @@
 //         n = num_vertices(hds);
 //     }
 //     private:
-//     VertexListHDS hds; 
+//     HDS hds; 
 //     vertex_descriptor v;
 //     vertex_iterator b;
 //     vertex_iterator e;
@@ -120,7 +120,10 @@
 #ifndef BOOST_HDSTL_CONCEPTS_VERTEX_LIST_HDS_CONCEPT_HPP
 #define BOOST_HDSTL_CONCEPTS_VERTEX_LIST_HDS_CONCEPT_HPP 1
 
-#include <boost/concepts.h>
+#include <boost/concept_check.hpp>
+#include <boost/hdstl/hds_traits.hpp>
+#include <boost/hdstl/hds_concepts/hds_concept.hpp>
+#include <boost/hdstl/hds_concepts/vertex_hds_concept.hpp>
 
 namespace boost {
 namespace hdstl{
Added: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.t.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.t.cpp	2007-06-29 22:27:01 EDT (Fri, 29 Jun 2007)
@@ -0,0 +1,118 @@
+//vertex_list_hds_concept.t.cpp   -*- C++ -*-
+//
+//@OVERVIEW:  The component under test is a concept-checking class.  We
+// proceed with the standard test plan for such a class.
+//
+//@TEST_PLAN:  Create a (loose) archetype of the concept, and verify
+// (using the Boost.ConceptCheck library macros) that it satisfies all
+// the concept requirements of the concept.  Note that the purpose of
+// this test driver is to verify the validity of the concept checking
+// class, not of the archetype.  This is why it suffices to take the
+// 'halfedge_descriptor' as an 'int', although a real archetype would make
+// this into a custom-made class with the tailored minimal requirements.
+
+#include <boost/hdstl/hds_concepts/vertex_list_hds_concept.hpp>
+#include <boost/test/minimal.hpp>
+#include <boost/concept_check.hpp>
+
+namespace hdstl1 {
+
+    struct vertex_list_hds_archetype {
+        // This 'struct', intentionally defined in a namespace different from
+        // 'hdstl', the 'hds_traits' specialization defined in the namespace
+        // 'hdstl', and the supporting function 'opposite', defined in the same
+        // namespace as this 'struct' to take advantage of ADL
+        // (argument-dependent lookup) provide an archetype for the 'HDS'
+        // concept.
+
+        typedef int* vertex_iterator;
+        typedef int halfedge_descriptor;
+        typedef int vertex_descriptor;
+        typedef int size_type;
+    };
+
+    vertex_list_hds_archetype::halfedge_descriptor
+        opposite(vertex_list_hds_archetype::halfedge_descriptor h,  
+                const vertex_list_hds_archetype&)
+    {
+        return h;
+    }
+    
+    vertex_list_hds_archetype::vertex_iterator
+        vertices_begin(const vertex_list_hds_archetype&)
+    {
+        return vertex_list_hds_archetype::vertex_iterator();
+    }
+    
+    vertex_list_hds_archetype::vertex_iterator
+        vertices_end(const vertex_list_hds_archetype&)
+    {
+        return vertex_list_hds_archetype::vertex_iterator();
+    }
+    
+    vertex_list_hds_archetype::size_type
+        num_vertices(const vertex_list_hds_archetype&)
+    {
+        return vertex_list_hds_archetype::size_type();
+    }
+    
+    vertex_list_hds_archetype::vertex_descriptor
+    source(vertex_list_hds_archetype::halfedge_descriptor,
+             const vertex_list_hds_archetype&)
+    {
+        return vertex_list_hds_archetype::vertex_descriptor();
+    }
+
+    vertex_list_hds_archetype::vertex_descriptor
+    target(vertex_list_hds_archetype::halfedge_descriptor,
+             const vertex_list_hds_archetype&)
+    {
+        return vertex_list_hds_archetype::vertex_descriptor();
+    }
+
+
+}  // namespace hdstl
+
+namespace boost {
+namespace hdstl {
+    
+    template <>
+    struct hds_traits<hdstl1::vertex_list_hds_archetype>
+    {
+        typedef hdstl1::vertex_list_hds_archetype::halfedge_descriptor
+                halfedge_descriptor;
+        typedef hdstl1::vertex_list_hds_archetype::vertex_descriptor
+                vertex_descriptor;
+        typedef hdstl1::vertex_list_hds_archetype::vertex_iterator
+                vertex_iterator;
+        typedef hdstl1::vertex_list_hds_archetype::size_type size_type;
+        enum { supports_vertices = true};
+        static const int supports_facets = false;
+    };
+    
+}  // namespace hdstl
+}  // namespace boost
+
+// ===========================================================================
+//                              BOOST TEST APPARATUS
+// ===========================================================================
+
+template <class HDS>
+struct class_concept_requirements
+{
+    BOOST_CLASS_REQUIRE(HDS, boost::hdstl::concepts, VertexListHDSConcept);
+};
+
+template <class HDS>
+bool concept_requirements()
+{
+    boost::function_requires<boost::hdstl::concepts::VertexListHDSConcept<HDS> >();
+    class_concept_requirements<HDS>(); // force instantiation
+    return true;
+}
+
+int test_main(int, char **)
+{
+    BOOST_CHECK(( concept_requirements<hdstl1::vertex_list_hds_archetype>() ));
+    return 0;
+}