Move hb_addressof() to hb-meta.hh
diff --git a/src/hb-algs.hh b/src/hb-algs.hh
index d03906c..9b524c1 100644
--- a/src/hb-algs.hh
+++ b/src/hb-algs.hh
@@ -271,18 +271,6 @@
  * Tiny stuff.
  */
 
-template <typename T> static inline T*
-hb_addressof (const T& arg)
-{
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wcast-align"
-  /* https://en.cppreference.com/w/cpp/memory/addressof */
-  return reinterpret_cast<T*>(
-	   &const_cast<char&>(
-	      reinterpret_cast<const volatile char&>(arg)));
-#pragma GCC diagnostic pop
-}
-
 /* ASCII tag/character handling */
 static inline bool ISALPHA (unsigned char c)
 { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); }
diff --git a/src/hb-iter.hh b/src/hb-iter.hh
index 5329182..93db59a 100644
--- a/src/hb-iter.hh
+++ b/src/hb-iter.hh
@@ -28,7 +28,6 @@
 #define HB_ITER_HH
 
 #include "hb.hh"
-#include "hb-algs.hh" // for hb_addressof
 #include "hb-meta.hh"
 
 
diff --git a/src/hb-meta.hh b/src/hb-meta.hh
index a9f9df9..b580036 100644
--- a/src/hb-meta.hh
+++ b/src/hb-meta.hh
@@ -31,10 +31,22 @@
 
 
 /*
- * C++ Template Meta-programming.
+ * C++ template meta-programming & fundamentals used with them.
  */
 
 
+template <typename T> static inline T*
+hb_addressof (const T& arg)
+{
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wcast-align"
+  /* https://en.cppreference.com/w/cpp/memory/addressof */
+  return reinterpret_cast<T*>(
+	   &const_cast<char&>(
+	      reinterpret_cast<const volatile char&>(arg)));
+#pragma GCC diagnostic pop
+}
+
 template <typename T> static inline T hb_declval ();
 #define hb_declval(T) (hb_declval<T> ())
 
diff --git a/src/hb.hh b/src/hb.hh
index eb941be..a6e3667 100644
--- a/src/hb.hh
+++ b/src/hb.hh
@@ -639,7 +639,7 @@
 #include "hb-atomic.hh"	// Requires: hb-meta
 #include "hb-null.hh"	// Requires: hb-meta
 #include "hb-algs.hh"	// Requires: hb-null
-#include "hb-iter.hh"	// Requires: hb-algs hb-meta
+#include "hb-iter.hh"	// Requires: hb-meta
 #include "hb-debug.hh"	// Requires: hb-algs hb-atomic
 #include "hb-array.hh"	// Requires: hb-algs hb-iter hb-null
 #include "hb-vector.hh"	// Requires: hb-array hb-null