Skip to content

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

@petrpokorny

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>          ]

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