> als Strukturmitglied einzulegen, für das eine benutzerdefinierte Hash -Funktion erforderlich ist. Ich möchte std :: hash nicht überladen, also habe ich Folgendes ausprobiert: < /p>
Test.hpp
Code: Select all
#ifndef TEST_HPP
#define TEST_HPP
#include
struct myStruct {
constexpr static auto pair_hash = [](const std::pair& p) -> size_t {
return std::hash{}(p.first) ^ (std::hash{}(p.second)
Test.cpp:
#include "test.hpp"
int main() {
myStruct s;
return 0;
}
< /code>
Dies kompiliert und funktioniert die Warnung:
‘myStruct’ has a field ‘std::unordered_set myStruct::mySet’ whose type has internal linkage [-Wsubobject-linkage]
Was ist das Problem und wie behebte ich das?