ethz-asl / maplab_dependencies

A repository holding submodules of maplab dependencies
https://github.com/ethz-asl/maplab
Apache License 2.0
20 stars 37 forks source link

add sparse-hash #14

Closed simonlynen closed 10 years ago

simonlynen commented 10 years ago

@tcies Compare DENSE_HASH_MAP (from the sparse-hash package) with std::unordered_map (gcc 4.8, Intel i7)

DENSE_HASH_MAP (4 byte objects, 10000000 iterations):
map_grow               32.4 ns  (26777220 hashes, 123886195 copies)
map_predict/grow       14.5 ns  (10000000 hashes, 73554475 copies)
map_replace             6.6 ns  (36777220 hashes, 123886195 copies)
map_fetch_random       21.0 ns  (36777220 hashes, 123886195 copies)
map_fetch_sequential    4.7 ns  (36777220 hashes, 123886195 copies)
map_fetch_empty         3.3 ns  (       0 hashes,       35 copies)
map_remove              7.8 ns  (36777220 hashes, 133886195 copies)
map_toggle             38.4 ns  (20624999 hashes, 74999995 copies)
map_iterate             4.2 ns  (26777220 hashes, 123886195 copies)

stresshashfunction map_size=256 stride=1: 37.7ns/insertion
stresshashfunction map_size=256 stride=256: 18.8ns/insertion
stresshashfunction map_size=1024 stride=1: 61.6ns/insertion
stresshashfunction map_size=1024 stride=1024: 38.2ns/insertion

STANDARD HASH_MAP (4 byte objects, 10000000 iterations):
map_grow               65.2 ns  (27427396 hashes, 40000000 copies)
map_predict/grow       37.6 ns  (10000000 hashes, 40000000 copies)
map_replace            14.3 ns  (37427396 hashes, 40000000 copies)
map_fetch_random       67.7 ns  (37427396 hashes, 40000000 copies)
map_fetch_sequential   13.0 ns  (37427396 hashes, 40000000 copies)
map_fetch_empty        11.3 ns  (10000000 hashes,        0 copies)
map_remove             28.5 ns  (37427396 hashes, 40000000 copies)
map_toggle             58.6 ns  (20000000 hashes, 40000000 copies)
map_iterate             3.6 ns  (27427396 hashes, 40000000 copies)

stresshashfunction map_size=256 stride=1: 40.5ns/insertion
stresshashfunction map_size=256 stride=256: 41.0ns/insertion
stresshashfunction map_size=1024 stride=1: 39.5ns/insertion
stresshashfunction map_size=1024 stride=1024: 40.0ns/insertion
simonlynen commented 10 years ago
======
Linux slynen 3.13.0-34-generic #60-Ubuntu SMP Wed Aug 13 15:45:27 UTC 2014 x86_64
Average over 10000000 iterations
Current time (GMT): Fri Aug 22 07:53:18 2014

SPARSE_HASH_MAP (4 byte objects, 10000000 iterations):
map_grow              147.3 ns  (23421757 hashes, 53421815 copies)
map_predict/grow       59.8 ns  (10000000 hashes, 40000005 copies)
map_replace            23.0 ns  (33421757 hashes, 53421815 copies)
map_fetch_random      138.7 ns  (33421757 hashes, 53421815 copies)
map_fetch_sequential   34.0 ns  (33421757 hashes, 53421815 copies)
map_fetch_empty        12.3 ns  (       0 hashes,        1 copies)
map_remove             41.0 ns  (33421757 hashes, 63421815 copies)
map_toggle            132.9 ns  (20399999 hashes, 51599997 copies)
map_iterate             7.7 ns  (23421757 hashes, 53421815 copies)

stresshashfunction map_size=256 stride=1: 239.3ns/insertion
stresshashfunction map_size=256 stride=256: 177.7ns/insertion
stresshashfunction map_size=1024 stride=1: 415.4ns/insertion
stresshashfunction map_size=1024 stride=1024: 436.4ns/insertion

DENSE_HASH_MAP (4 byte objects, 10000000 iterations):
map_grow               32.4 ns  (26777220 hashes, 123886195 copies)
map_predict/grow       14.5 ns  (10000000 hashes, 73554475 copies)
map_replace             6.6 ns  (36777220 hashes, 123886195 copies)
map_fetch_random       21.0 ns  (36777220 hashes, 123886195 copies)
map_fetch_sequential    4.7 ns  (36777220 hashes, 123886195 copies)
map_fetch_empty         3.3 ns  (       0 hashes,       35 copies)
map_remove              7.8 ns  (36777220 hashes, 133886195 copies)
map_toggle             38.4 ns  (20624999 hashes, 74999995 copies)
map_iterate             4.2 ns  (26777220 hashes, 123886195 copies)

stresshashfunction map_size=256 stride=1: 37.7ns/insertion
stresshashfunction map_size=256 stride=256: 18.8ns/insertion
stresshashfunction map_size=1024 stride=1: 61.6ns/insertion
stresshashfunction map_size=1024 stride=1024: 38.2ns/insertion

STANDARD HASH_MAP (4 byte objects, 10000000 iterations):
map_grow               65.2 ns  (27427396 hashes, 40000000 copies)
map_predict/grow       37.6 ns  (10000000 hashes, 40000000 copies)
map_replace            14.3 ns  (37427396 hashes, 40000000 copies)
map_fetch_random       67.7 ns  (37427396 hashes, 40000000 copies)
map_fetch_sequential   13.0 ns  (37427396 hashes, 40000000 copies)
map_fetch_empty        11.3 ns  (10000000 hashes,        0 copies)
map_remove             28.5 ns  (37427396 hashes, 40000000 copies)
map_toggle             58.6 ns  (20000000 hashes, 40000000 copies)
map_iterate             3.6 ns  (27427396 hashes, 40000000 copies)

stresshashfunction map_size=256 stride=1: 40.5ns/insertion
stresshashfunction map_size=256 stride=256: 41.0ns/insertion
stresshashfunction map_size=1024 stride=1: 39.5ns/insertion
stresshashfunction map_size=1024 stride=1024: 40.0ns/insertion

STANDARD MAP (4 byte objects, 10000000 iterations):
map_grow              377.8 ns  (       0 hashes, 20000000 copies)
map_predict/grow      381.3 ns  (       0 hashes, 20000000 copies)
map_replace           212.7 ns  (       0 hashes, 20000000 copies)
map_fetch_random     1356.7 ns  (       0 hashes, 20000000 copies)
map_fetch_sequential  193.6 ns  (       0 hashes, 20000000 copies)
map_fetch_empty         3.1 ns  (       0 hashes,        0 copies)
map_remove            178.5 ns  (       0 hashes, 20000000 copies)
map_toggle             57.9 ns  (       0 hashes, 20000000 copies)
map_iterate            15.9 ns  (       0 hashes, 20000000 copies)

SPARSE_HASH_MAP (8 byte objects, 5000000 iterations):
map_grow              211.7 ns  (11710870 hashes, 26710925 copies)
map_predict/grow      104.1 ns  ( 5000000 hashes, 20000005 copies)
map_replace            27.0 ns  (16710870 hashes, 26710925 copies)
map_fetch_random      134.1 ns  (16710870 hashes, 26710925 copies)
map_fetch_sequential   37.0 ns  (16710870 hashes, 26710925 copies)
map_fetch_empty        13.6 ns  (       0 hashes,        1 copies)
map_remove             46.2 ns  (16710870 hashes, 31710925 copies)
map_toggle            157.5 ns  (10199999 hashes, 25799997 copies)
map_iterate             7.0 ns  (11710870 hashes, 26710925 copies)

stresshashfunction map_size=256 stride=1: 238.5ns/insertion
stresshashfunction map_size=256 stride=256: 169.1ns/insertion
stresshashfunction map_size=1024 stride=1: 406.0ns/insertion
stresshashfunction map_size=1024 stride=1024: 431.3ns/insertion

DENSE_HASH_MAP (8 byte objects, 5000000 iterations):
map_grow               49.9 ns  (13388611 hashes, 61943147 copies)
map_predict/grow       17.4 ns  ( 5000000 hashes, 36777259 copies)
map_replace             8.2 ns  (18388611 hashes, 61943147 copies)
map_fetch_random       28.7 ns  (18388611 hashes, 61943147 copies)
map_fetch_sequential    6.3 ns  (18388611 hashes, 61943147 copies)
map_fetch_empty         5.2 ns  (       0 hashes,       35 copies)
map_remove              9.8 ns  (18388611 hashes, 66943147 copies)
map_toggle             42.6 ns  (10312499 hashes, 37499995 copies)
map_iterate             4.9 ns  (13388611 hashes, 61943147 copies)

stresshashfunction map_size=256 stride=1: 39.1ns/insertion
stresshashfunction map_size=256 stride=256: 19.4ns/insertion
stresshashfunction map_size=1024 stride=1: 62.7ns/insertion
stresshashfunction map_size=1024 stride=1024: 38.6ns/insertion

STANDARD HASH_MAP (8 byte objects, 5000000 iterations):
map_grow               67.7 ns  (13582537 hashes, 20000000 copies)
map_predict/grow       42.8 ns  ( 5000000 hashes, 20000000 copies)
map_replace            13.7 ns  (18582537 hashes, 20000000 copies)
map_fetch_random       74.5 ns  (18582537 hashes, 20000000 copies)
map_fetch_sequential   14.8 ns  (18582537 hashes, 20000000 copies)
map_fetch_empty        12.5 ns  ( 5000000 hashes,        0 copies)
map_remove             30.2 ns  (18582537 hashes, 20000000 copies)
map_toggle             64.9 ns  (10000000 hashes, 20000000 copies)
map_iterate             3.2 ns  (13582537 hashes, 20000000 copies)

stresshashfunction map_size=256 stride=1: 40.2ns/insertion
stresshashfunction map_size=256 stride=256: 41.3ns/insertion
stresshashfunction map_size=1024 stride=1: 40.3ns/insertion
stresshashfunction map_size=1024 stride=1024: 40.8ns/insertion

STANDARD MAP (8 byte objects, 5000000 iterations):
map_grow              424.0 ns  (       0 hashes, 10000000 copies)
map_predict/grow      397.7 ns  (       0 hashes, 10000000 copies)
map_replace           237.0 ns  (       0 hashes, 10000000 copies)
map_fetch_random     1286.0 ns  (       0 hashes, 10000000 copies)
map_fetch_sequential  255.6 ns  (       0 hashes, 10000000 copies)
map_fetch_empty         3.2 ns  (       0 hashes,        0 copies)
map_remove            198.3 ns  (       0 hashes, 10000000 copies)
map_toggle             57.2 ns  (       0 hashes, 10000000 copies)
map_iterate            17.3 ns  (       0 hashes, 10000000 copies)

SPARSE_HASH_MAP (16 byte objects, 2500000 iterations):
map_grow              290.9 ns  ( 5855426 hashes, 13355478 copies)
map_predict/grow      154.6 ns  ( 2500000 hashes, 10000005 copies)
map_replace            34.8 ns  ( 8355426 hashes, 13355478 copies)
map_fetch_random      132.1 ns  ( 8355426 hashes, 13355478 copies)
map_fetch_sequential   46.1 ns  ( 8355426 hashes, 13355478 copies)
map_fetch_empty        14.0 ns  (       0 hashes,        1 copies)
map_remove             54.0 ns  ( 8355426 hashes, 15855478 copies)
map_toggle            171.1 ns  ( 5099999 hashes, 12899997 copies)
map_iterate             7.1 ns  ( 5855426 hashes, 13355478 copies)

DENSE_HASH_MAP (16 byte objects, 2500000 iterations):
map_grow               97.0 ns  ( 6694306 hashes, 30971619 copies)
map_predict/grow       35.7 ns  ( 2500000 hashes, 18388651 copies)
map_replace            20.6 ns  ( 9194306 hashes, 30971619 copies)
map_fetch_random       45.2 ns  ( 9194306 hashes, 30971619 copies)
map_fetch_sequential   14.5 ns  ( 9194306 hashes, 30971619 copies)
map_fetch_empty         5.7 ns  (       0 hashes,       35 copies)
map_remove             21.8 ns  ( 9194306 hashes, 33471619 copies)
map_toggle             66.9 ns  ( 5156249 hashes, 18749995 copies)
map_iterate             5.6 ns  ( 6694306 hashes, 30971619 copies)

STANDARD HASH_MAP (16 byte objects, 2500000 iterations):
map_grow               92.1 ns  ( 6726830 hashes, 10000000 copies)
map_predict/grow       57.5 ns  ( 2500000 hashes, 10000000 copies)
map_replace            22.8 ns  ( 9226830 hashes, 10000000 copies)
map_fetch_random       96.1 ns  ( 9226830 hashes, 10000000 copies)
map_fetch_sequential   19.4 ns  ( 9226830 hashes, 10000000 copies)
map_fetch_empty        17.6 ns  ( 2500000 hashes,        0 copies)
map_remove             39.0 ns  ( 9226830 hashes, 10000000 copies)
map_toggle             86.9 ns  ( 5000000 hashes, 10000000 copies)
map_iterate             5.6 ns  ( 6726830 hashes, 10000000 copies)

STANDARD MAP (16 byte objects, 2500000 iterations):
map_grow              319.0 ns  (       0 hashes,  5000000 copies)
map_predict/grow      291.8 ns  (       0 hashes,  5000000 copies)
map_replace           173.1 ns  (       0 hashes,  5000000 copies)
map_fetch_random     1113.2 ns  (       0 hashes,  5000000 copies)
map_fetch_sequential  235.9 ns  (       0 hashes,  5000000 copies)
map_fetch_empty         3.2 ns  (       0 hashes,        0 copies)
map_remove            191.9 ns  (       0 hashes,  5000000 copies)
map_toggle             60.0 ns  (       0 hashes,  5000000 copies)
map_iterate            27.0 ns  (       0 hashes,  5000000 copies)

SPARSE_HASH_MAP (256 byte objects, 312500 iterations):
map_grow             1507.0 ns  (  731912 hashes,  1669455 copies)
map_predict/grow      842.8 ns  (  312500 hashes,  1250005 copies)
map_replace           225.5 ns  ( 1044412 hashes,  1669455 copies)
map_fetch_random      259.8 ns  ( 1044412 hashes,  1669455 copies)
map_fetch_sequential  248.3 ns  ( 1044412 hashes,  1669455 copies)
map_fetch_empty        28.3 ns  (       0 hashes,        1 copies)
map_remove            287.1 ns  ( 1044412 hashes,  1981955 copies)
map_toggle            628.4 ns  (  637499 hashes,  1612497 copies)
map_iterate            17.2 ns  (  731912 hashes,  1669455 copies)

DENSE_HASH_MAP (256 byte objects, 312500 iterations):
map_grow              723.0 ns  (  836787 hashes,  3871515 copies)
map_predict/grow      296.9 ns  (  312500 hashes,  2298619 copies)
map_replace           210.0 ns  ( 1149287 hashes,  3871515 copies)
map_fetch_random      211.3 ns  ( 1149287 hashes,  3871515 copies)
map_fetch_sequential  201.9 ns  ( 1149287 hashes,  3871515 copies)
map_fetch_empty        22.9 ns  (       0 hashes,       35 copies)
map_remove            233.9 ns  ( 1149287 hashes,  4184015 copies)
map_toggle            440.5 ns  (  644531 hashes,  2343775 copies)
map_iterate            33.4 ns  (  836787 hashes,  3871515 copies)

STANDARD HASH_MAP (256 byte objects, 312500 iterations):
map_grow              572.5 ns  (  817789 hashes,  1250000 copies)
map_predict/grow      312.3 ns  (  312500 hashes,  1250000 copies)
map_replace           194.2 ns  ( 1130289 hashes,  1250000 copies)
map_fetch_random      304.6 ns  ( 1130289 hashes,  1250000 copies)
map_fetch_sequential  191.2 ns  ( 1130289 hashes,  1250000 copies)
map_fetch_empty       148.8 ns  (  312500 hashes,        0 copies)
map_remove            221.5 ns  ( 1130289 hashes,  1250000 copies)
map_toggle            493.3 ns  (  625000 hashes,  1250000 copies)
map_iterate            12.9 ns  (  817789 hashes,  1250000 copies)

STANDARD MAP (256 byte objects, 312500 iterations):
map_grow              291.7 ns  (       0 hashes,   625000 copies)
map_predict/grow      279.6 ns  (       0 hashes,   625000 copies)
map_replace           175.6 ns  (       0 hashes,   625000 copies)
map_fetch_random      682.0 ns  (       0 hashes,   625000 copies)
map_fetch_sequential  173.1 ns  (       0 hashes,   625000 copies)
map_fetch_empty        19.9 ns  (       0 hashes,        0 copies)
map_remove            159.9 ns  (       0 hashes,   625000 copies)
map_toggle            190.8 ns  (       0 hashes,   625000 copies)
map_iterate            42.8 ns  (       0 hashes,   625000 copies)
simonlynen commented 10 years ago

NPE http://129.132.38.183:8080/job/thirdparty_submodules/125/parsed_console/

markusachtelik commented 10 years ago

fails on osx unfortunately :(

In file included from ../sparsehash_src/src/hashtable_test.cc:60:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/vector:502:5: error: implicit instantiation of undefined template '__static_assert_test<false>'
    static_assert((is_same<typename allocator_type::value_type, value_type>::value),
    ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:490:35: note: expanded from macro 'static_assert'
    typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \
                                  ^
../sparsehash_src/src/sparsehash/sparsetable:1447:20: note: in instantiation of template class 'std::__1::vector<google::sparsegroup<std::__1::pair<const int, int>, 48, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >, <anonymous>::Alloc<google::sparsegroup<std::__1::pair<const int, int>, 48, <anonymous>::Alloc<std::__1::pair<const int, int>, unsigned long, 18446744073709551615> >, unsigned long, 18446744073709551615> >' requested here
  typedef typename group_vector_type::reference GroupsReference;
                   ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:168:20: note: in instantiation of template class 'google::sparsetable<std::__1::pair<const int, int>, 48, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >' requested here
  typedef typename sparsetable<V,DEFAULT_GROUP_SIZE,A>::nonempty_iterator
                   ^
../sparsehash_src/src/hash_test_interface.h:83:27: note: in instantiation of template class 'google::sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >' requested here
  class iterator : public HT::iterator {
                          ^
../sparsehash_src/src/hashtable_test.cc:592:32: note: in instantiation of member class 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator' requested here
  typename TypeParam::iterator i;
                               ^
../sparsehash_src/src/hashtable_test.cc:571:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:571:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
../sparsehash_src/src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:486:24: note: template is declared here
template <bool> struct __static_assert_test;
                       ^
../sparsehash_src/src/hashtable_test.cc:614:8: error: no viable conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::const_iterator'
  ci = this->ht_.begin();
       ^~~~~~~~~~~~~~~~~
../sparsehash_src/src/hashtable_test.cc:571:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:571:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
../sparsehash_src/src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
../sparsehash_src/src/hash_test_interface.h:106:5: note: candidate constructor
    const_iterator(typename BaseHashtableInterface<HT>::iterator it)
    ^
../sparsehash_src/src/hash_test_interface.h:95:9: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::const_iterator &' for 1st argument
  class const_iterator : public HT::const_iterator {
        ^
../sparsehash_src/src/hash_test_interface.h:95:9: note: passing argument to parameter here
../sparsehash_src/src/hashtable_test.cc:616:9: error: no viable conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::local_iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::const_local_iterator'
  cli = this->ht_.begin(0);
        ^~~~~~~~~~~~~~~~~~
../sparsehash_src/src/hash_test_interface.h:136:5: note: candidate constructor
    const_local_iterator(local_iterator it)
    ^
../sparsehash_src/src/hash_test_interface.h:127:9: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::local_iterator' to 'const google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::const_local_iterator &' for 1st argument
  class const_local_iterator : public HT::const_local_iterator {
        ^
../sparsehash_src/src/hash_test_interface.h:127:9: note: passing argument to parameter here
In file included from ../sparsehash_src/src/hashtable_test.cc:63:
In file included from ../sparsehash_src/src/hash_test_interface.h:50:
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:376:41: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >')
  iterator begin()             { return iterator(this, table.nonempty_begin(),
                                        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../sparsehash_src/src/sparsehash/sparse_hash_map:153:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::begin' requested here
  iterator begin()                               { return rep.begin(); }
                                                              ^
../sparsehash_src/src/hash_test_interface.h:144:25: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::begin' requested here
    return iterator(ht_.begin(), this);
                        ^
../sparsehash_src/src/hashtable_test.cc:614:18: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::begin' requested here
  ci = this->ht_.begin();
                 ^
../sparsehash_src/src/hashtable_test.cc:571:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:571:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
../sparsehash_src/src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:179:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<std::vector<sparsegroup<value_type, 48, value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:182:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:161:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
In file included from ../sparsehash_src/src/hashtable_test.cc:63:
../sparsehash_src/src/hash_test_interface.h:88:15: error: type 'typename sparse_hash_map<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >') is not a direct or virtual base of 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
        : HT::iterator(it), parent_(parent) { }
              ^~~~~~~~
../sparsehash_src/src/hash_test_interface.h:144:12: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator::iterator' requested here
    return iterator(ht_.begin(), this);
           ^
../sparsehash_src/src/hashtable_test.cc:614:18: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::begin' requested here
  ci = this->ht_.begin();
                 ^
../sparsehash_src/src/hashtable_test.cc:571:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:571:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
../sparsehash_src/src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
In file included from ../sparsehash_src/src/hashtable_test.cc:63:
In file included from ../sparsehash_src/src/hash_test_interface.h:50:
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:394:14: error: no matching constructor for initialization of 'local_iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >')
      return local_iterator(this, table.get_iter(i), table.nonempty_end());
             ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../sparsehash_src/src/sparsehash/sparse_hash_map:159:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::begin' requested here
  local_iterator begin(size_type i)              { return rep.begin(i); }
                                                              ^
../sparsehash_src/src/hash_test_interface.h:156:31: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::begin' requested here
    return local_iterator(ht_.begin(i), this);
                              ^
../sparsehash_src/src/hashtable_test.cc:616:19: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::begin' requested here
  cli = this->ht_.begin(0);
                  ^
../sparsehash_src/src/hashtable_test.cc:571:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:571:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableIntTest_Typedefs<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableIntTest_Typedefs' requested here
TYPED_TEST(HashtableIntTest, Typedefs) {
^
../sparsehash_src/src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:179:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<std::vector<sparsegroup<value_type, 48, value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:182:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:161:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
../sparsehash_src/src/hashtable_test.cc:620:33: error: invalid operands to binary expression ('google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator')
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
              ~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~
../sparsehash_src/src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
../sparsehash_src/src/sparsehash/internal/libc_allocator_with_realloc.h:106:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator==(const libc_allocator_with_realloc<T>&,
            ^
../sparsehash_src/src/hashtable_test.cc:624:20: error: invalid operands to binary expression ('typename HashtableInterface_SparseHashMap<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it != this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
../sparsehash_src/src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
../sparsehash_src/src/sparsehash/internal/libc_allocator_with_realloc.h:112:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator!=(const libc_allocator_with_realloc<T>&,
            ^
../sparsehash_src/src/hashtable_test.cc:625:5: error: cannot increment value of type 'typename HashtableInterface_SparseHashMap<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator'
    ++it;
    ^ ~~
../sparsehash_src/src/hashtable_test.cc:626:20: error: invalid operands to binary expression ('typename HashtableInterface_SparseHashMap<int, int, Hasher, Hasher, Alloc<int, unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it == this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
../sparsehash_src/src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
../sparsehash_src/src/sparsehash/internal/libc_allocator_with_realloc.h:106:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator==(const libc_allocator_with_realloc<T>&,
            ^
In file included from ../sparsehash_src/src/hashtable_test.cc:63:
../sparsehash_src/src/hash_test_interface.h:147:12: error: no matching constructor for initialization of 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::iterator'
    return iterator(ht_.end(), this);
           ^        ~~~~~~~~~~~~~~~
../sparsehash_src/src/hashtable_test.cc:620:46: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::end' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                                             ^
../sparsehash_src/src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
../sparsehash_src/src/hash_test_interface.h:85:5: note: candidate constructor not viable: requires 0 arguments, but 2 were provided
    iterator() : parent_(NULL) { }   // this allows code like "iterator it;"
    ^
../sparsehash_src/src/hash_test_interface.h:83:9: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
  class iterator : public HT::iterator {
        ^
In file included from ../sparsehash_src/src/hashtable_test.cc:63:
In file included from ../sparsehash_src/src/hash_test_interface.h:50:
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:378:41: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >')
  iterator end()               { return iterator(this, table.nonempty_end(),
                                        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
../sparsehash_src/src/sparsehash/sparse_hash_map:154:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::end' requested here
  iterator end()                                 { return rep.end(); }
                                                              ^
../sparsehash_src/src/hash_test_interface.h:147:25: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::end' requested here
    return iterator(ht_.end(), this);
                        ^
../sparsehash_src/src/hashtable_test.cc:620:46: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::end' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                                             ^
../sparsehash_src/src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:179:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<std::vector<sparsegroup<value_type, 48, value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:182:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:161:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:946:39: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >')
      return std::pair<iterator,bool>(iterator(this, table.get_iter(pos.first),
                                      ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:979:12: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::insert_noresize' requested here
    return insert_noresize(obj);
           ^
../sparsehash_src/src/sparsehash/sparse_hash_map:261:16: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const int, int>, int, <anonymous>::Hasher, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::insert' requested here
    return rep.insert(obj);
               ^
../sparsehash_src/src/hash_test_interface.h:295:52: note: in instantiation of member function 'google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> >::insert' requested here
    std::pair<typename HT::iterator, bool> r = ht_.insert(obj);
                                                   ^
../sparsehash_src/src/hashtable_test.cc:621:13: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::insert' requested here
  this->ht_.insert(this->UniqueObject(1));
            ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<int, int, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<int, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
                                                                   ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:179:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<std::vector<sparsegroup<value_type, 48, value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:182:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:161:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
In file included from ../sparsehash_src/src/hashtable_test.cc:60:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/vector:502:5: error: implicit instantiation of undefined template '__static_assert_test<false>'
    static_assert((is_same<typename allocator_type::value_type, value_type>::value),
    ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:490:35: note: expanded from macro 'static_assert'
    typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \
                                  ^
../sparsehash_src/src/sparsehash/sparsetable:1447:20: note: in instantiation of template class 'std::__1::vector<google::sparsegroup<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, 48, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >, <anonymous>::Alloc<google::sparsegroup<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, 48, <anonymous>::Alloc<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, unsigned long, 18446744073709551615> >, unsigned long, 18446744073709551615> >' requested here
  typedef typename group_vector_type::reference GroupsReference;
                   ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:168:20: note: in instantiation of template class 'google::sparsetable<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, 48, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >' requested here
  typedef typename sparsetable<V,DEFAULT_GROUP_SIZE,A>::nonempty_iterator
                   ^
../sparsehash_src/src/hash_test_interface.h:83:27: note: in instantiation of template class 'google::sparse_hashtable_iterator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, std::__1::basic_string<char>, <anonymous>::Hasher, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >' requested here
  class iterator : public HT::iterator {
                          ^
../sparsehash_src/src/hashtable_test.cc:620:25: note: in instantiation of member class 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                        ^
../sparsehash_src/src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:205:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:486:24: note: template is declared here
template <bool> struct __static_assert_test;
                       ^
../sparsehash_src/src/hashtable_test.cc:624:20: error: invalid operands to binary expression ('typename HashtableInterface_SparseHashMap<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>, unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it != this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
../sparsehash_src/src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:205:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
../sparsehash_src/src/sparsehash/internal/libc_allocator_with_realloc.h:112:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator!=(const libc_allocator_with_realloc<T>&,
            ^
../sparsehash_src/src/hashtable_test.cc:625:5: error: cannot increment value of type 'typename HashtableInterface_SparseHashMap<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>, unsigned long, 18446744073709551615> >::iterator'
    ++it;
    ^ ~~
../sparsehash_src/src/hashtable_test.cc:626:20: error: invalid operands to binary expression ('typename HashtableInterface_SparseHashMap<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>, unsigned long, 18446744073709551615> >::iterator' and 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator')
    EXPECT_TRUE(it == this->ht_.end());
                ~~ ^  ~~~~~~~~~~~~~~~
../sparsehash_src/src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
../sparsehash_src/src/sparsehash/internal/libc_allocator_with_realloc.h:106:13: note: candidate template ignored: could not match 'libc_allocator_with_realloc<type-parameter-0-0>' against 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator'
inline bool operator==(const libc_allocator_with_realloc<T>&,
            ^
In file included from ../sparsehash_src/src/hashtable_test.cc:63:
In file included from ../sparsehash_src/src/hash_test_interface.h:50:
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:376:41: error: no matching constructor for initialization of 'iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, std::__1::basic_string<char>, <anonymous>::Hasher, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >')
  iterator begin()             { return iterator(this, table.nonempty_begin(),
                                        ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../sparsehash_src/src/sparsehash/sparse_hash_map:153:63: note: in instantiation of member function 'google::sparse_hashtable<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, std::__1::basic_string<char>, <anonymous>::Hasher, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::begin' requested here
  iterator begin()                               { return rep.begin(); }
                                                              ^
../sparsehash_src/src/hash_test_interface.h:144:25: note: in instantiation of member function 'google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::begin' requested here
    return iterator(ht_.begin(), this);
                        ^
../sparsehash_src/src/hashtable_test.cc:620:25: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::begin' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                        ^
../sparsehash_src/src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:205:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
                                                                   ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:179:3: note: candidate constructor not viable: no known conversion from 'nonempty_iterator' (aka 'two_d_iterator<std::vector<sparsegroup<value_type, 48, value_alloc_type>, vector_alloc> >') to 'st_iterator' (aka 'int') for 2nd argument
  sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,SetK,EqK,A> *h,
  ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:182:3: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  sparse_hashtable_iterator() { }      // not ever used internally
  ^
../sparsehash_src/src/sparsehash/internal/sparsehashtable.h:161:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
struct sparse_hashtable_iterator {
       ^
In file included from ../sparsehash_src/src/hashtable_test.cc:63:
../sparsehash_src/src/hash_test_interface.h:88:15: error: type 'typename sparse_hash_map<basic_string<char>, basic_string<char>, Hasher, Hasher, Alloc<basic_string<char>, unsigned long, 18446744073709551615> >::iterator' (aka 'sparse_hashtable_iterator<std::__1::pair<const std::__1::basic_string<char>, std::__1::basic_string<char> >, std::__1::basic_string<char>, <anonymous>::Hasher, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SelectKey, google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >::SetKey, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> >') is not a direct or virtual base of 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator'
        : HT::iterator(it), parent_(parent) { }
              ^~~~~~~~
../sparsehash_src/src/hash_test_interface.h:144:12: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::iterator::iterator' requested here
    return iterator(ht_.begin(), this);
           ^
../sparsehash_src/src/hashtable_test.cc:620:25: note: in instantiation of member function 'google::BaseHashtableInterface<google::sparse_hash_map<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::begin' requested here
  EXPECT_TRUE(this->ht_.begin() == this->ht_.end());
                        ^
../sparsehash_src/src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
  if (!(cond)) {                                        \
        ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::Run' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
      Run();                                                            \
      ^
../sparsehash_src/src/hashtable_test.cc:619:1: note: in instantiation of member function '<anonymous namespace>::TEST_onetype_HashtableAllTest_NormalIterators<google::HashtableInterface_SparseHashMap<std::__1::basic_string<char>, std::__1::basic_string<char>, <anonymous>::Hasher, <anonymous>::Hasher, <anonymous>::Alloc<std::__1::basic_string<char>, unsigned long, 18446744073709551615> > >::TEST_onetype_HashtableAllTest_NormalIterators' requested here
TYPED_TEST(HashtableAllTest, NormalIterators) {
^
../sparsehash_src/src/testutil.h:205:68: note: expanded from macro 'TYPED_TEST'
        TEST_onetype_##superclass##_##testname<superclass##_type7> t;   \
dymczykm commented 10 years ago

Isn't it the gtest outdated version problem that @furgalep is also experiencing?