[cplusplus] Fix build on GCC < 7
diff --git a/src/hb-cplusplus.hh b/src/hb-cplusplus.hh
index 86d0452..f06a32d 100644
--- a/src/hb-cplusplus.hh
+++ b/src/hb-cplusplus.hh
@@ -166,8 +166,14 @@
} // namespace hb
+/* Workaround for GCC < 7, see:
+ * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480
+ * https://stackoverflow.com/a/25594741 */
+namespace std {
+
+
template<typename T>
-struct std::hash<hb::shared_ptr<T>>
+struct hash<hb::shared_ptr<T>>
{
std::size_t operator()(const hb::shared_ptr<T>& v) const noexcept
{
@@ -177,7 +183,7 @@
};
template<typename T>
-struct std::hash<hb::unique_ptr<T>>
+struct hash<hb::unique_ptr<T>>
{
std::size_t operator()(const hb::unique_ptr<T>& v) const noexcept
{
@@ -187,6 +193,8 @@
};
+} // namespace std
+
#endif /* __cplusplus */
#endif /* HB_CPLUSPLUS_HH */