Skip to content

Instantly share code, notes, and snippets.

Revisions

  1. @BillyWatson BillyWatson created this gist Mar 13, 2014.
    701 changes: 701 additions & 0 deletions configure_sparsehash_2.0.2_os_x_mavericks_llvm_5.1
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,701 @@
    $ gcc -v
    Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
    Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)
    Target: x86_64-apple-darwin13.1.0
    Thread model: posix
    $ ./configure
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... ./install-sh -c -d
    checking for gawk... no
    checking for mawk... no
    checking for nawk... no
    checking for awk... awk
    checking whether make sets $(MAKE)... yes
    checking for g++... g++
    checking whether the C++ compiler works... yes
    checking for C++ compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C++ compiler... yes
    checking whether g++ accepts -g... yes
    checking for style of include used by make... GNU
    checking dependency style of g++... gcc3
    checking for gcc... gcc
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking dependency style of gcc... gcc3
    checking how to run the C preprocessor... gcc -E
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for ANSI C header files... yes
    checking for memcpy... yes
    checking for memmove... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for uint16_t... yes
    checking for u_int16_t... yes
    checking for __uint16... no
    checking for long long... yes
    checking sys/resource.h usability... yes
    checking sys/resource.h presence... yes
    checking for sys/resource.h... yes
    checking for unistd.h... (cached) yes
    checking sys/time.h usability... yes
    checking sys/time.h presence... yes
    checking for sys/time.h... yes
    checking sys/utsname.h usability... yes
    checking sys/utsname.h presence... yes
    checking for sys/utsname.h... yes
    checking how to run the C++ preprocessor... g++ -E
    checking google/malloc_extension.h usability... no
    checking google/malloc_extension.h presence... no
    checking for google/malloc_extension.h... no
    checking whether the compiler implements namespaces... yes
    checking the location of hash_map... <unordered_map>
    checking how to include hash_fun directly... <functional>
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating src/config.h
    config.status: executing depfiles commands
    [10:34:29] (45) williamrwatson@WattsInABoxPro:~/development/sparsehash-2.0.2
    $ make
    [ -d src/sparsehash/internal ] || mkdir -p src/sparsehash/internal
    echo "/*" > src/sparsehash/internal/_sparsehash_config
    echo " * NOTE: This file is for internal use only." >> src/sparsehash/internal/_sparsehash_config
    echo " * Do not use these #defines in your own program!" >> src/sparsehash/internal/_sparsehash_config
    echo " */" >> src/sparsehash/internal/_sparsehash_config
    awk '{prevline=currline; currline=$0;} \
    /^#/ {in_second_file = 1;} \
    !in_second_file {if (currline !~ /^ *$/) {inc[currline]=0}}; \
    in_second_file { for (i in inc) { \
    if (index(currline, i) != 0) { \
    print "\n"prevline"\n"currline; \
    delete inc[i]; \
    } \
    } }' \
    ./src/config.h.include ./src/config.h \
    >> src/sparsehash/internal/_sparsehash_config
    mv -f src/sparsehash/internal/_sparsehash_config src/sparsehash/internal/sparseconfig.h
    /Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
    g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT template_util_unittest.o -MD -MP -MF .deps/template_util_unittest.Tpo -c -o template_util_unittest.o `test -f 'src/template_util_unittest.cc' || echo './'`src/template_util_unittest.cc
    mv -f .deps/template_util_unittest.Tpo .deps/template_util_unittest.Po
    g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o template_util_unittest template_util_unittest.o
    g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT type_traits_unittest.o -MD -MP -MF .deps/type_traits_unittest.Tpo -c -o type_traits_unittest.o `test -f 'src/type_traits_unittest.cc' || echo './'`src/type_traits_unittest.cc
    src/type_traits_unittest.cc:88:7: warning: private field 'n_' is not used [-Wunused-private-field]
    int n_;
    ^
    src/type_traits_unittest.cc:98:7: warning: private field 'n_' is not used [-Wunused-private-field]
    int n_;
    ^
    src/type_traits_unittest.cc:112:7: warning: private field 'n_' is not used [-Wunused-private-field]
    int n_;
    ^
    src/type_traits_unittest.cc:138:7: warning: private field 'n_' is not used [-Wunused-private-field]
    int n_;
    ^
    4 warnings generated.
    mv -f .deps/type_traits_unittest.Tpo .deps/type_traits_unittest.Po
    g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o type_traits_unittest type_traits_unittest.o
    g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT libc_allocator_with_realloc_test.o -MD -MP -MF .deps/libc_allocator_with_realloc_test.Tpo -c -o libc_allocator_with_realloc_test.o `test -f 'src/libc_allocator_with_realloc_test.cc' || echo './'`src/libc_allocator_with_realloc_test.cc
    mv -f .deps/libc_allocator_with_realloc_test.Tpo .deps/libc_allocator_with_realloc_test.Po
    g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o libc_allocator_with_realloc_test libc_allocator_with_realloc_test.o
    g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT sparsetable_unittest.o -MD -MP -MF .deps/sparsetable_unittest.Tpo -c -o sparsetable_unittest.o `test -f 'src/sparsetable_unittest.cc' || echo './'`src/sparsetable_unittest.cc
    mv -f .deps/sparsetable_unittest.Tpo .deps/sparsetable_unittest.Po
    g++ -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -o sparsetable_unittest sparsetable_unittest.o
    g++ -DHAVE_CONFIG_H -I. -I./src -I./src -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -MT hashtable_test.o -MD -MP -MF .deps/hashtable_test.Tpo -c -o hashtable_test.o `test -f 'src/hashtable_test.cc' || echo './'`src/hashtable_test.cc
    In file included from src/hashtable_test.cc:63:
    ./src/hash_test_interface.h:436:50: warning: unused parameter 'k' [-Wunused-parameter]
    void set_empty_key(const typename p::key_type& k) { }
    ^
    ./src/hash_test_interface.h:543:50: warning: unused parameter 'k' [-Wunused-parameter]
    void set_empty_key(const typename p::key_type& k) { }
    ^
    ./src/hash_test_interface.h:659:50: warning: unused parameter 'k' [-Wunused-parameter]
    void set_empty_key(const typename p::key_type& k) { }
    ^
    In file included from 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)>)> \
    ^
    ./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;
    ^
    ./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
    ^
    ./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 {
    ^
    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;
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./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;
    ^
    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();
    ^~~~~~~~~~~~~~~~~
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type1> t; \
    ^
    ./src/hash_test_interface.h:106:5: note: candidate constructor
    const_iterator(typename BaseHashtableInterface<HT>::iterator it)
    ^
    ./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 {
    ^
    ./src/hash_test_interface.h:95:9: note: passing argument to parameter here
    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);
    ^~~~~~~~~~~~~~~~~~
    ./src/hash_test_interface.h:136:5: note: candidate constructor
    const_local_iterator(local_iterator it)
    ^
    ./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 {
    ^
    ./src/hash_test_interface.h:127:9: note: passing argument to parameter here
    In file included from src/hashtable_test.cc:63:
    In file included from ./src/hash_test_interface.h:50:
    ./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(),
    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./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(); }
    ^
    ./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);
    ^
    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();
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type1> t; \
    ^
    ./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,
    ^
    ./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
    ^
    ./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 src/hashtable_test.cc:63:
    ./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) { }
    ^~~~~~~~
    ./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);
    ^
    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();
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type1> t; \
    ^
    In file included from src/hashtable_test.cc:63:
    In file included from ./src/hash_test_interface.h:50:
    ./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());
    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./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); }
    ^
    ./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);
    ^
    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);
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type1> t; \
    ^
    ./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,
    ^
    ./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
    ^
    ./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 {
    ^
    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());
    ~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~
    ./src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
    if (!(cond)) { \
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type1> t; \
    ^
    ./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>&,
    ^
    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());
    ~~ ^ ~~~~~~~~~~~~~~~
    ./src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
    if (!(cond)) { \
    ^
    ./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>&,
    ^
    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;
    ^ ~~
    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());
    ~~ ^ ~~~~~~~~~~~~~~~
    ./src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
    if (!(cond)) { \
    ^
    ./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 src/hashtable_test.cc:63:
    ./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);
    ^ ~~~~~~~~~~~~~~~
    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());
    ^
    ./src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
    if (!(cond)) { \
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type1> t; \
    ^
    ./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;"
    ^
    ./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 src/hashtable_test.cc:63:
    In file included from ./src/hash_test_interface.h:50:
    ./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(),
    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./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(); }
    ^
    ./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);
    ^
    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());
    ^
    ./src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
    if (!(cond)) { \
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type1> t; \
    ^
    ./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,
    ^
    ./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
    ^
    ./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 {
    ^
    ./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),
    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./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);
    ^
    ./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);
    ^
    ./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);
    ^
    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));
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:181:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type1> t; \
    ^
    ./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,
    ^
    ./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
    ^
    ./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 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)>)> \
    ^
    ./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;
    ^
    ./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
    ^
    ./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 {
    ^
    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());
    ^
    ./src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
    if (!(cond)) { \
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./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;
    ^
    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());
    ~~ ^ ~~~~~~~~~~~~~~~
    ./src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
    if (!(cond)) { \
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:205:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type7> t; \
    ^
    ./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>&,
    ^
    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;
    ^ ~~
    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());
    ~~ ^ ~~~~~~~~~~~~~~~
    ./src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
    if (!(cond)) { \
    ^
    ./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 src/hashtable_test.cc:63:
    In file included from ./src/hash_test_interface.h:50:
    ./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(),
    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./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(); }
    ^
    ./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);
    ^
    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());
    ^
    ./src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
    if (!(cond)) { \
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:205:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type7> t; \
    ^
    ./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,
    ^
    ./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
    ^
    ./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 src/hashtable_test.cc:63:
    ./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) { }
    ^~~~~~~~
    ./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);
    ^
    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());
    ^
    ./src/testutil.h:51:9: note: expanded from macro 'EXPECT_TRUE'
    if (!(cond)) { \
    ^
    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) {
    ^
    ./src/testutil.h:171:7: note: expanded from macro 'TYPED_TEST'
    Run(); \
    ^
    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) {
    ^
    ./src/testutil.h:205:68: note: expanded from macro 'TYPED_TEST'
    TEST_onetype_##superclass##_##testname<superclass##_type7> t; \
    ^
    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    3 warnings and 20 errors generated.
    make[1]: *** [hashtable_test.o] Error 1
    make: *** [all] Error 2