Boost logo

Boost-Commit :

From: hervebronnimann_at_[hidden]
Date: 2007-07-18 01:57:19


Author: hervebronnimann
Date: 2007-07-18 01:57:18 EDT (Wed, 18 Jul 2007)
New Revision: 7463
URL: http://svn.boost.org/trac/boost/changeset/7463

Log:
post-Skype discussion checkin.

Text files modified:
   sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/container_selectors.hpp | 86 +++++++++++++++++++++----
   sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/container_selectors.t.cpp | 6 +
   sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/facet_selectors.hpp | 20 +++--
   sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/facet_selectors.t.cpp | 6
   sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_functions.hpp | 4
   sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_selectors.hpp | 4
   sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_selectors.t.cpp | 130 ++++++++++++++++++++-------------------
   7 files changed, 163 insertions(+), 93 deletions(-)

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/container_selectors.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/container_selectors.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/container_selectors.hpp 2007-07-18 01:57:18 EDT (Wed, 18 Jul 2007)
@@ -220,6 +220,12 @@
 
         typedef typename std::tr1::hash_set<ValueType>::iterator base_type;
       public:
+ // TYPES
+ typedef ValueType* value_type;
+ typedef value_type& reference;
+ typedef value_type* pointer;
+ typedef typename base_type::difference_type difference_type;
+ typedef typename base_type::iterator_category iterator_category;
         // CREATORS
         iterator() {}
             // Create an unitialized iterator.
@@ -227,14 +233,14 @@
             // Create an iterator pointing to the same element as the specified
             // 'it' iterator in the specified 'container'.
         // MANIPULATORS
- ValueType* operator*()
+ value_type operator*()
             // Return the descriptor of the element pointed to by this
             // iterator.
         {
             return &(*base_type());
         }
         // ACCESSORS
- ValueType* operator*() const
+ value_type operator*() const
             // Return the descriptor of the element pointed to by this
             // iterator.
         {
@@ -284,7 +290,9 @@
 template <typename ValueType>
 struct container_gen<listS, ValueType> {
     // This specialization of 'container_gen' selects the 'std::list'
- // container.
+ // container. It offers a descriptor type that is simply a pointer to a
+ // value, and an iterator type that is a list iterator but whose value type
+ // is instead a descriptor.
 
     // TYPES
     typedef std::list<ValueType> type;
@@ -304,6 +312,12 @@
 
         typedef typename std::list<ValueType>::iterator base_type;
       public:
+ // TYPES
+ typedef ValueType* value_type;
+ typedef value_type reference;
+ typedef value_type* pointer;
+ typedef typename base_type::difference_type difference_type;
+ typedef typename base_type::iterator_category iterator_category;
         // CREATORS
         iterator() {}
             // Create an unitialized iterator.
@@ -311,18 +325,20 @@
             // Create an iterator pointing to the same element as the specified
             // 'it' iterator in the specified 'container'.
         // MANIPULATORS
- ValueType* operator*()
- // Return the descriptor of the element pointed to by this
+ iterator& operator++() { ++static_cast<base_type&>(*this); return *this; }
+ iterator& operator--() { --static_cast<base_type&>(*this); return *this; }
+ reference operator*()
+ // Return the modifiable descriptor of the element pointed to by this
             // iterator.
         {
- return &(*base_type());
+ return &(*base_type(*this));
         }
         // ACCESSORS
- ValueType* operator*() const
+ value_type operator*() const
             // Return the descriptor of the element pointed to by this
             // iterator.
         {
- return &(*base_type());
+ return &(*base_type(*this));
         }
     };
 
@@ -373,6 +389,12 @@
 
         typedef typename std::set<ValueType>::iterator base_type;
       public:
+ // TYPES
+ typedef const ValueType* value_type;
+ typedef value_type reference;
+ typedef value_type* pointer;
+ typedef typename base_type::difference_type difference_type;
+ typedef typename base_type::iterator_category iterator_category;
         // CREATORS
         iterator() {}
             // Create an unitialized iterator.
@@ -380,14 +402,16 @@
             // Create an iterator pointing to the same element as the specified
             // 'it' iterator in the specified 'container'.
         // MANIPULATORS
- const ValueType* operator*()
- // Return the descriptor of the element pointed to by this
+ iterator& operator++() { ++static_cast<base_type&>(*this); return *this; }
+ iterator& operator--() { --static_cast<base_type&>(*this); return *this; }
+ reference operator*()
+ // Return the non-modifiable descriptor of the element pointed to by this
             // iterator.
         {
             return &(*base_type(*this));
         }
         // ACCESSORS
- const ValueType* operator*() const
+ value_type operator*() const
             // Return the descriptor of the element pointed to by this
             // iterator.
         {
@@ -410,7 +434,7 @@
         return container.end();
     }
 
- static ValueType& value(descriptor x, type& container)
+ static const ValueType& value(descriptor x, type& container)
             // This utility returns the value associated with the specified
             // descriptor 'x' of the specified 'container'.
     {
@@ -433,6 +457,29 @@
         // Type used to describe an element in the collection of elements
         // present in a given container.
 
+ struct descriptor_proxy {
+ // This type is a proxy for a descriptor reference.
+
+ // TYPES
+ typedef typename std::vector<ValueType>::iterator base_type;
+ typedef typename std::vector<ValueType>::size_type value_type;
+ // DATA
+ base_type m_begin;
+ value_type m_offset;
+ // CREATORS
+ descriptor_proxy(base_type begin, value_type offset)
+ : m_begin(begin), m_offset(offset) {}
+ // MANIPULATORS
+ descriptor_proxy& operator=(value_type x) {
+ *(m_begin+m_offset) = m_begin+x;
+ return *this;
+ }
+ // ACCESSORS
+ operator value_type() const {
+ return m_offset;
+ }
+ };
+
     struct iterator : public std::vector<ValueType>::iterator {
         // Iterator type over a given container. Note: the value type must be
         // a descriptor, so we cannot use a 'std::vector:iterator'. Instead,
@@ -442,6 +489,12 @@
         // DATA
         std::vector<ValueType> *m_container;
       public:
+ // TYPES
+ typedef typename std::vector<ValueType>::size_type value_type;
+ typedef descriptor_proxy reference;
+ typedef value_type* pointer;
+ typedef typename base_type::difference_type difference_type;
+ typedef typename base_type::iterator_category iterator_category;
         // CREATORS
         iterator()
             // Create an unitialized iterator.
@@ -451,14 +504,15 @@
             // 'it' iterator in the specified 'container'.
         : base_type(it), m_container(container) {}
         // MANIPULATORS
- typename std::vector<ValueType>::size_type operator*()
- // Return the descriptor of the element pointed to by this
+ reference operator*()
+ // Return a modifiable descriptor of the element pointed to by this
             // iterator.
         {
- return base_type(*this) - m_container->begin();
+ return descriptor_proxy(m_container->begin(),
+ base_type(*this) - m_container->begin());
         }
         // ACCESSORS
- typename std::vector<ValueType>::size_type operator*() const
+ value_type operator*() const
             // Return the descriptor of the element pointed to by this
             // iterator.
         {

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/container_selectors.t.cpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/container_selectors.t.cpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/container_selectors.t.cpp 2007-07-18 01:57:18 EDT (Wed, 18 Jul 2007)
@@ -95,6 +95,12 @@
     iterator begin = ContainerGen::container_begin(container);
     descriptor theBegin = *begin;
 
+ // Descriptor must hold correct value:
+ BOOST_CHECK(( ContainerGen::value(theBegin, container) == 0 ));
+ BOOST_CHECK(( ContainerGen::value(*++begin, container) == 1 ));
+ BOOST_CHECK(( ContainerGen::value(*++begin, container) == 2 ));
+ BOOST_CHECK(( ContainerGen::value(*++begin, container) == 3 ));
+
     return true;
 }
 

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/facet_selectors.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/facet_selectors.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/facet_selectors.hpp 2007-07-18 01:57:18 EDT (Wed, 18 Jul 2007)
@@ -302,7 +302,8 @@
 // FREE FUNCTIONS
 template <typename FacetS, typename HalfedgeDescriptor, typename FacetBase>
 typename facet_gen<FacetS, HalfedgeDescriptor, FacetBase>::facet_iterator
-facets_begin(facet_gen<FacetS, HalfedgeDescriptor, FacetBase>& hds) {
+facets_begin(facet_gen<FacetS, HalfedgeDescriptor, FacetBase>& hds)
+{
     typedef typename facet_gen<FacetS,
                                HalfedgeDescriptor,
                                FacetBase>::ContainerGen ContainerGen;
@@ -311,7 +312,8 @@
 
 template <typename FacetS, typename HalfedgeDescriptor, typename FacetBase>
 typename facet_gen<FacetS, HalfedgeDescriptor, FacetBase>::facet_iterator
-facets_end(facet_gen<FacetS, HalfedgeDescriptor, FacetBase>& hds) {
+facets_end(facet_gen<FacetS, HalfedgeDescriptor, FacetBase>& hds)
+{
     typedef typename facet_gen<FacetS,
                                HalfedgeDescriptor,
                                FacetBase>::ContainerGen ContainerGen;
@@ -320,20 +322,22 @@
 
 template <typename FacetS, typename HalfedgeDescriptor, typename FacetBase>
 typename facet_gen<FacetS, HalfedgeDescriptor, FacetBase>::size_type
-num_facets(facet_gen<FacetS, HalfedgeDescriptor, FacetBase> const& hds) {
+num_facets(facet_gen<FacetS, HalfedgeDescriptor, FacetBase> const& hds)
+{
     return hds.m_container.size();
 }
 
 template <typename FacetS, typename HalfedgeDescriptor, typename FacetBase>
 HalfedgeDescriptor
-halfedge(typename facet_gen<FacetS, HalfedgeDescriptor,
+halfedge(typename facet_gen<FacetS,
+ HalfedgeDescriptor,
                             FacetBase>::facet_descriptor const& f,
- facet_gen<FacetS, HalfedgeDescriptor, FacetBase>& hds) {
- return facet_gen<FacetS, HalfedgeDescriptor, FacetBase>
- ::ContainerGen::value(f, hds.m_container).m_facetLink;
+ facet_gen<FacetS, HalfedgeDescriptor, FacetBase>& hds)
+{
+ return facet_gen<FacetS, HalfedgeDescriptor, FacetBase>::ContainerGen
+ ::value(f, hds.m_container).m_facetLink;
 }
 
-
 } // namespace hdstl
 } // namespace boost
 

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/facet_selectors.t.cpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/facet_selectors.t.cpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/facet_selectors.t.cpp 2007-07-18 01:57:18 EDT (Wed, 18 Jul 2007)
@@ -155,7 +155,7 @@
     facet_type array[] = { fa, fb, fc, fd }; (void) array;
     
     // Same checks as before:
- //BOOST_CHECK(( facet_gen_requirements_void<FacetGen>() ));
+ // BOOST_CHECK(( facet_gen_requirements_void<FacetGen>() ));
     container_type temp_con(array,array+4);
     FacetGen facetGen;
     facetGen.m_container = temp_con;
@@ -164,8 +164,8 @@
     BOOST_CHECK(( facets_begin(facetGen)->m_facetLink == 1 ));
     BOOST_CHECK(( (--facets_end(facetGen))->m_facetLink == 4 ));
 
- //BOOST_CHECK(( halfedge(*facets_begin(facetGen), facetGen) == 1 ));
- //BOOST_CHECK(( halfedge(*(--facets_end(facetGen)), facetGen) == 4 ));
+ BOOST_CHECK(( halfedge(*facets_begin(facetGen), facetGen) == 1 ));
+ // BOOST_CHECK(( halfedge(*(--facets_end(facetGen)), facetGen) == 4 ));
     
     // Plus: get the base back from the facets and making sure it matches.
     BOOST_CHECK(( facets_begin(facetGen)->base() == 1 ));

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_functions.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_functions.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_functions.hpp 2007-07-18 01:57:18 EDT (Wed, 18 Jul 2007)
@@ -52,7 +52,7 @@
 
 template<typename HalfedgeS, typename HalfedgeDescriptor>
 struct opposite_function_helper {
- inline static
+ static
     HalfedgeDescriptor&
     opposite(HalfedgeDescriptor& h)
     {
@@ -65,7 +65,7 @@
 
 template<typename HalfedgeDescriptor, typename TraversalS>
 struct opposite_function_helper<halfedgeS<vecS,TraversalS>, HalfedgeDescriptor> {
- inline static
+ static
     HalfedgeDescriptor&
     opposite(HalfedgeDescriptor& h)
     {

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_selectors.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_selectors.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_selectors.hpp 2007-07-18 01:57:18 EDT (Wed, 18 Jul 2007)
@@ -30,7 +30,7 @@
 #define BOOST_HDSTL_HALFEDGE_SELECTORS_HPP 1
 
 #include <boost/hdstl/hds_traits.hpp>
-#include <boost/hdstl/halfedge_ds/halfedge_ds.hpp>
+#include <boost/hdstl/halfedge_ds/container_selectors.hpp>
 
 namespace boost {
 namespace hdstl {
@@ -190,7 +190,7 @@
 };
 
 // SPECIALIZATIONS
-template <typename ContainerS, typename TraversalS,typename HalfedgeDescriptor,
+template <typename ContainerS, typename TraversalS, typename HalfedgeDescriptor,
           typename VertexDescriptor, typename FacetDescriptor, typename Config>
 struct halfedge_gen<halfedgeS<ContainerS,TraversalS>, HalfedgeDescriptor,
                     VertexDescriptor, FacetDescriptor, Config> {

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_selectors.t.cpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_selectors.t.cpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/halfedge_ds/halfedge_selectors.t.cpp 2007-07-18 01:57:18 EDT (Wed, 18 Jul 2007)
@@ -1,4 +1,4 @@
-//halfedge_selectors.hpp -*- C++ -*-
+//halfedge_selectors.t.cpp -*- C++ -*-
 //
 //@OVERVIEW: The component under test is a selector class. We
 // must make sure that all selectors are suitably defined and that the
@@ -12,7 +12,10 @@
 // without errors, when assert is replaced by BOOST_CHECK.
 
 #include <boost/hdstl/halfedge_ds/halfedge_selectors.hpp>
+
+#include <boost/hdstl/halfedge_ds/facet_selectors.hpp>
 #include <boost/hdstl/halfedge_ds/halfedge_functions.hpp>
+#include <boost/hdstl/halfedge_ds/vertex_selectors.hpp>
 
 #include <boost/test/minimal.hpp>
 
@@ -56,6 +59,17 @@
 // CLASS HALFEDGE_GEN
 // ===========================================================================
 
+template <typename HalfedgeS, typename VertexS, typename FacetS>
+struct halfedge_config {
+ enum {
+ halfedge_has_opposite_member = false,
+ halfedge_supports_vertices = false,
+ is_forward = false,
+ is_backward = false,
+ is_source = false,
+ halfedge_supports_facets = false
+ };
+};
 
 template <typename HalfedgeGen>
 bool halfedge_gen_requirements_void() {
@@ -109,7 +123,7 @@
     halfedge_type array[] = { fa, fb, fc, fd }; (void) array;
     
     // Same checks as before:
- //BOOST_CHECK(( halfedge_gen_requirements_void<HalfedgeGen>() ));
+ // BOOST_CHECK(( halfedge_gen_requirements_void<HalfedgeGen>() ));
     container_type temp_con(array,array+4);
     HalfedgeGen halfedgeGen;
     halfedgeGen.m_container = temp_con;
@@ -118,8 +132,8 @@
     BOOST_CHECK(( halfedges_begin(halfedgeGen)->m_halfedgeLink == 1 ));
     BOOST_CHECK(( (--halfedges_end(halfedgeGen))->m_halfedgeLink == 4 ));
 
- //BOOST_CHECK(( halfedge(*halfedges_begin(halfedgeGen), halfedgeGen) == 1 ));
- //BOOST_CHECK(( halfedge(*(--halfedges_end(halfedgeGen)), halfedgeGen) == 4 ));
+ // BOOST_CHECK(( halfedge(*halfedges_begin(halfedgeGen), halfedgeGen) == 1 ));
+ // BOOST_CHECK(( halfedge(*(--halfedges_end(halfedgeGen)), halfedgeGen) == 4 ));
     
     // Plus: get the base back from the halfedges and making sure it matches.
     BOOST_CHECK(( halfedges_begin(halfedgeGen)->base() == 1 ));
@@ -138,7 +152,8 @@
 // BOOST TEST APPARATUS
 // ===========================================================================
 
-int test_main(int, char **)
+template <typename ContainerS>
+bool test_container_selector()
 {
     BOOST_CHECK(( selection_requirements(halfedgeS<listS,
                                             forwardS<next_in_facet_tag> >()) ));
@@ -168,28 +183,25 @@
                   halfedge_gen<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
- noVertexS, noFacetS>
- ::config>
+ noVertexS, noFacetS> >
>() ));
     BOOST_CHECK(( halfedge_gen_requirements_void<
                   halfedge_gen<
                   halfedgeS<listS, forwardS<next_at_source_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, forwardS<next_at_source_tag> >,
- noVertexS, noFacetS>
- ::config>
+ noVertexS, noFacetS> >
>() ));
     BOOST_CHECK(( halfedge_gen_requirements_void<
                   halfedge_gen<
                   halfedgeS<listS, forwardS<next_at_target_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, forwardS<next_at_target_tag> >,
- noVertexS, noFacetS>
- ::config>
+ noVertexS, noFacetS> >
>() ));
                     
                     // ===============
@@ -200,28 +212,25 @@
                   halfedge_gen<
                   halfedgeS<listS, backwardS<prev_in_facet_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, backwardS<prev_in_facet_tag> >,
- noVertexS, noFacetS>
- ::config>
+ noVertexS, noFacetS> >
>() ));
     BOOST_CHECK(( halfedge_gen_requirements_void<
                   halfedge_gen<
                   halfedgeS<listS, backwardS<prev_at_source_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, backwardS<prev_at_source_tag> >,
- noVertexS, noFacetS>
- ::config>
+ noVertexS, noFacetS> >
>() ));
     BOOST_CHECK(( halfedge_gen_requirements_void<
                   halfedge_gen<
                   halfedgeS<listS, backwardS<prev_at_target_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, backwardS<prev_at_target_tag> >,
- noVertexS, noFacetS>
- ::config>
+ noVertexS, noFacetS> >
>() ));
                     
                     // ============
@@ -229,37 +238,34 @@
                     // ============
 
     BOOST_CHECK(( halfedge_gen_requirements_void<
- halfedge_gen<
- halfedgeS<listS, bidirS<next_in_facet_tag,
- prev_in_facet_tag> >,
- int, int, int,
- halfedge_ds_gen<
- halfedgeS<listS, bidirS<next_in_facet_tag,
- prev_in_facet_tag> >,
- noVertexS, noFacetS>
- ::config>
+ halfedge_gen<
+ halfedgeS<listS, bidirS<next_in_facet_tag,
+ prev_in_facet_tag> >,
+ int, int, int,
+ halfedge_config<
+ halfedgeS<listS, bidirS<next_in_facet_tag,
+ prev_in_facet_tag> >,
+ noVertexS, noFacetS> >
>() ));
     BOOST_CHECK(( halfedge_gen_requirements_void<
                   halfedge_gen<
- halfedgeS<listS, bidirS<next_at_source_tag,
- prev_at_source_tag> >,
- int, int, int,
- halfedge_ds_gen<
- halfedgeS<listS, bidirS<next_at_source_tag,
- prev_at_source_tag> >,
- noVertexS, noFacetS>
- ::config>
+ halfedgeS<listS, bidirS<next_at_source_tag,
+ prev_at_source_tag> >,
+ int, int, int,
+ halfedge_config<
+ halfedgeS<listS, bidirS<next_at_source_tag,
+ prev_at_source_tag> >,
+ noVertexS, noFacetS> >
>() ));
     BOOST_CHECK(( halfedge_gen_requirements_void<
                   halfedge_gen<
                   halfedgeS<listS, bidirS<next_at_target_tag,
                                           prev_at_target_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, bidirS<next_at_target_tag,
                                           prev_at_target_tag> >,
- noVertexS, noFacetS>
- ::config>
+ noVertexS, noFacetS> >
>() ));
                     
                     // =============
@@ -270,37 +276,33 @@
                   halfedge_gen<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
- vertexS<listS,false,sourceS>, noFacetS>
- ::config>
+ vertexS<listS,false,sourceS>, noFacetS> >
>() ));
     BOOST_CHECK(( halfedge_gen_requirements_void<
                   halfedge_gen<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
- vertexS<listS,false,targetS>, noFacetS>
- ::config>
+ vertexS<listS,false,targetS>, noFacetS> >
>() ));
     BOOST_CHECK(( halfedge_gen_requirements_void<
                   halfedge_gen<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
- vertexS<listS,true,sourceS>, noFacetS>
- ::config>
+ vertexS<listS,true,sourceS>, noFacetS> >
>() ));
     BOOST_CHECK(( halfedge_gen_requirements_void<
                   halfedge_gen<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
- vertexS<listS,true,targetS>, noFacetS>
- ::config>
+ vertexS<listS,true,targetS>, noFacetS> >
>() ));
     
                     // ============
@@ -311,19 +313,17 @@
                   halfedge_gen<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
- noVertexS, facetS<listS,true> >
- ::config>
+ noVertexS, facetS<listS,true> > >
>() ));
     BOOST_CHECK(( halfedge_gen_requirements_void<
                   halfedge_gen<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
                   int, int, int,
- halfedge_ds_gen<
+ halfedge_config<
                   halfedgeS<listS, forwardS<next_in_facet_tag> >,
- noVertexS, facetS<listS,false> >
- ::config>
+ noVertexS, facetS<listS,false> > >
>() ));
 /*
     BOOST_CHECK(( halfedge_gen_requirements_noHalfedgeLink<
@@ -356,6 +356,12 @@
     // halfedge_gen<halfedgeS<vecS,true>, int, custom_halfedge_base> >() ));
     //BOOST_CHECK(( usageExample() ));
   */
- return 0;
+ return true;
 }
 
+int test_main(int, char**)
+{
+ BOOST_CHECK(( test_container_selector<listS>() ));
+ BOOST_CHECK(( test_container_selector<vecS>() ));
+ return 0;
+}


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk