From: khizmax Date: Sun, 23 Aug 2015 15:03:53 +0000 (+0300) Subject: MultiLevelHashSet/Map - fixed GCC incompatibility X-Git-Tag: v2.1.0~151 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=69ed412eaae4d1cd4e19a420762dd7c13686f524;p=libcds.git MultiLevelHashSet/Map - fixed GCC incompatibility Added doc images --- diff --git a/cds/container/impl/multilevel_hashmap.h b/cds/container/impl/multilevel_hashmap.h index 4704240f..a9e29f50 100644 --- a/cds/container/impl/multilevel_hashmap.h +++ b/cds/container/impl/multilevel_hashmap.h @@ -136,7 +136,6 @@ namespace cds { namespace container { class bidirectional_iterator: public base_class::iterator_base { friend class MultiLevelHashMap; - friend typename base_class; typedef typename base_class::iterator_base iterator_base; protected: @@ -202,7 +201,7 @@ namespace cds { namespace container { return !( *this == rhs ); } - protected: + public: // for internal use only! bidirectional_iterator( base_class const& set, typename base_class::array_node * pNode, size_t idx, bool ) : iterator_base( set, pNode, idx, false ) {} @@ -217,7 +216,6 @@ namespace cds { namespace container { class reverse_bidirectional_iterator : public base_class::iterator_base { friend class MultiLevelHashMap; - friend typename base_class; typedef typename base_class::iterator_base iterator_base; public: @@ -281,7 +279,7 @@ namespace cds { namespace container { return !( *this == rhs ); } - protected: + public: // for internal use only! reverse_bidirectional_iterator( base_class const& set, typename base_class::array_node * pNode, size_t idx, bool ) : iterator_base( set, pNode, idx, false ) {} diff --git a/cds/intrusive/impl/multilevel_hashset.h b/cds/intrusive/impl/multilevel_hashset.h index 4b22a47b..c86c2f42 100644 --- a/cds/intrusive/impl/multilevel_hashset.h +++ b/cds/intrusive/impl/multilevel_hashset.h @@ -1360,7 +1360,7 @@ namespace cds { namespace intrusive { hash_type const& hash = hash_accessor()( val ); hash_splitter splitter( hash ); hash_comparator cmp; - typename gc::GuardArray<2> guards; + typename gc::template GuardArray<2> guards; back_off bkoff; array_node * pArr = m_Head; diff --git a/doxygen/cds.doxy b/doxygen/cds.doxy index bebbae6e..e0e50cac 100644 --- a/doxygen/cds.doxy +++ b/doxygen/cds.doxy @@ -701,7 +701,7 @@ EXAMPLE_RECURSIVE = NO # directories that contain image that are included in the documentation (see # the \image command). -IMAGE_PATH = +IMAGE_PATH = doxygen/image # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program diff --git a/doxygen/image/multilevel_hashset.png b/doxygen/image/multilevel_hashset.png new file mode 100644 index 00000000..2df82c0b Binary files /dev/null and b/doxygen/image/multilevel_hashset.png differ diff --git a/doxygen/images.odp b/doxygen/images.odp new file mode 100644 index 00000000..db7fd563 Binary files /dev/null and b/doxygen/images.odp differ diff --git a/tests/test-hdr/map/hdr_multilevel_hashmap.h b/tests/test-hdr/map/hdr_multilevel_hashmap.h index e5a7b71e..1940486e 100644 --- a/tests/test-hdr/map/hdr_multilevel_hashmap.h +++ b/tests/test-hdr/map/hdr_multilevel_hashmap.h @@ -98,7 +98,7 @@ namespace map { size_t const capacity = 1000; - Map m; + Map m( nHeadBits, nArrayBits ); CPPUNIT_MSG("Array size: head=" << m.head_size() << ", array_node=" << m.array_node_size()); //CPPUNIT_ASSERT(m.head_size() >= (size_t(1) << nHeadBits)); //CPPUNIT_ASSERT(m.array_node_size() == (size_t(1) << nArrayBits)); diff --git a/tests/test-hdr/set/hdr_multilevel_hashset.h b/tests/test-hdr/set/hdr_multilevel_hashset.h index b34a4504..649a18a4 100644 --- a/tests/test-hdr/set/hdr_multilevel_hashset.h +++ b/tests/test-hdr/set/hdr_multilevel_hashset.h @@ -129,7 +129,7 @@ namespace set { { typedef typename Set::hash_type hash_type; typedef typename Set::value_type value_type; - typedef typename Arg arg_type; + typedef Arg arg_type; typedef typename Set::guarded_ptr guarded_ptr; Hasher hasher;