1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00

Fix build issues due to std::hash missing

This commit is contained in:
Matias Fontanini
2017-04-30 19:55:23 -07:00
parent 60b5f3e6e4
commit 3f2f6438fd
5 changed files with 25 additions and 6 deletions

View File

@@ -35,6 +35,10 @@
#include <string>
#include <cstring>
#include "cxxstd.h"
#if TINS_IS_CXX11
// std::hash
#include <memory>
#endif // TINS_IS_CXX11
namespace Tins {
namespace Internals {

View File

@@ -205,9 +205,7 @@ namespace std {
template<>
struct hash<Tins::IPv4Address> {
size_t operator()(const Tins::IPv4Address& addr) const {
return std::hash<uint32_t>()(addr);
}
size_t operator()(const Tins::IPv4Address& addr) const;
};
} // std

View File

@@ -223,9 +223,7 @@ namespace std {
template<>
struct hash<Tins::IPv6Address> {
size_t operator()(const Tins::IPv6Address& addr) const {
return std::hash<std::string>()(addr.to_string());
}
size_t operator()(const Tins::IPv6Address& addr) const;
};
} // std

View File

@@ -33,6 +33,10 @@
#include <sys/socket.h>
#include <arpa/inet.h>
#endif // _WIN32
#if TINS_IS_CXX11
// std::hash
#include <memory>
#endif // TINS_IS_CXX11
#include <stdexcept>
#include <sstream>
#include <iostream>
@@ -41,6 +45,7 @@
#include "address_range.h"
#include "exceptions.h"
using std::string;
using std::ostringstream;
using std::ostream;
@@ -150,3 +155,8 @@ IPv4Address IPv4Address::operator&(const IPv4Address& mask) const {
}
} // Tins
// Hash
size_t std::hash<Tins::IPv4Address>::operator()(const Tins::IPv4Address& addr) const {
return std::hash<uint32_t>()(addr);
}

View File

@@ -37,6 +37,10 @@
#include <ws2tcpip.h>
#include <mstcpip.h>
#endif
#if TINS_IS_CXX11
// std::hash
#include <memory>
#endif // TINS_IS_CXX11
#include <limits>
#include <sstream>
#include <iostream>
@@ -148,3 +152,8 @@ IPv6Address operator&(const IPv6Address& lhs, const IPv6Address& rhs) {
}
} // Tins
// Hash
size_t std::hash<Tins::IPv6Address>::operator()(const Tins::IPv6Address& addr) const {
return std::hash<string>()(addr.to_string());
}