Skip to content

Error "The C++ Standard doesn't provide a hash for this type." when building NETMapnik with Visual Studio 2015 #24

Description

@petrpokorny

Hi, I am trying to build this project on Windows (64bit). I did download and setup all dependencies.
However I am getting the following error: "The C++ Standard doesn't provide a hash for this type." It looks like it is caused by external code in vector_tile_backend_pbf.hpp in mapnik-vector-tile project.
Is this a known issue and is there solution for it? Or Visual Studio 2015 is not supported yet? (I noticed Visual Studio 2015 RC in requirements)

Thank you!

1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xstddef(381): error C2338: The C++ Standard doesn't provide a hash for this type.
1>  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(522): note: see reference to class template instantiation 'std::hash<_Kty>' being compiled
1>          with
1>          [
1>              _Kty=mapnik::value_adl_barrier::value
1>          ]
1>  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xutility(264): note: see reference to class template instantiation 'std::is_empty<_Ty1>' being compiled
1>          with
1>          [
1>              _Ty1=std::hash<mapnik::value_adl_barrier::value>
1>          ]
1>  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\unordered_map(23): note: see reference to class template instantiation 'std::_Uhash_compare<_Kty,_Hasher,_Keyeq>' being compiled
1>          with
1>          [
1>              _Kty=mapnik::value_adl_barrier::value,
1>              _Hasher=std::hash<mapnik::value_adl_barrier::value>,
1>              _Keyeq=std::equal_to<mapnik::value_adl_barrier::value>
1>          ]
1>  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xhash(152): note: see reference to class template instantiation 'std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>' being compiled
1>          with
1>          [
1>              _Kty=mapnik::value_adl_barrier::value,
1>              _Ty=unsigned int,
1>              _Hasher=std::hash<mapnik::value_adl_barrier::value>,
1>              _Keyeq=std::equal_to<mapnik::value_adl_barrier::value>,
1>              _Alloc=std::allocator<std::pair<const mapnik::value_adl_barrier::value,unsigned int>>
1>          ]
1>  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\unordered_map(86): note: see reference to class template instantiation 'std::_Hash<std::_Umap_traits<_Kty,_Ty,std::_Uhash_compare<_Kty,_Hasher,_Keyeq>,_Alloc,false>>' being compiled
1>          with
1>          [
1>              _Kty=mapnik::value_adl_barrier::value,
1>              _Ty=unsigned int,
1>              _Hasher=std::hash<mapnik::value_adl_barrier::value>,
1>              _Keyeq=std::equal_to<mapnik::value_adl_barrier::value>,
1>              _Alloc=std::allocator<std::pair<const mapnik::value_adl_barrier::value,unsigned int>>
1>          ]
1>  D:\src\Archive\NET-Mapnik\lib\mapnik-vector-tile\src\vector_tile_backend_pbf.hpp(33): note: see reference to class template instantiation 'std::unordered_map<mapnik::value_adl_barrier::value,unsigned int,std::hash<_Kty>,std::equal_to<_Kty>,std::allocator<std::pair<const _Kty,_Ty>>>' being compiled
1>          with
1>          [
1>              _Kty=mapnik::value_adl_barrier::value,
1>              _Ty=unsigned int
1>          ]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions