gdb: move RequireLongest to gdbsupport/traits.h

Move it out of defs.h.

Change-Id: Ie1743d41a57f81667650048563e66073c72230cf
Approved-By: John Baldwin <jhb@FreeBSD.org>
diff --git a/gdb/defs.h b/gdb/defs.h
index 5da8ce7..535ca67 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -63,10 +63,6 @@
 #include "gdbsupport/enum-flags.h"
 #include "gdbsupport/array-view.h"
 
-template<typename T>
-using RequireLongest = gdb::Requires<gdb::Or<std::is_same<T, LONGEST>,
-					     std::is_same<T, ULONGEST>>>;
-
 /* Just in case they're not defined in stdio.h.  */
 
 #ifndef SEEK_SET
diff --git a/gdb/extract-store-integer.h b/gdb/extract-store-integer.h
index 1ba5f82..fd195dc 100644
--- a/gdb/extract-store-integer.h
+++ b/gdb/extract-store-integer.h
@@ -18,6 +18,8 @@
 #ifndef GDB_EXTRACT_STORE_INTEGER_H
 #define GDB_EXTRACT_STORE_INTEGER_H
 
+#include "gdbsupport/traits.h"
+
 template<typename T, typename = RequireLongest<T>>
 T extract_integer (gdb::array_view<const gdb_byte>, enum bfd_endian byte_order);
 
diff --git a/gdb/regcache.h b/gdb/regcache.h
index 1d049fe..2f4b7d9 100644
--- a/gdb/regcache.h
+++ b/gdb/regcache.h
@@ -23,6 +23,7 @@
 #include "gdbsupport/array-view.h"
 #include "gdbsupport/common-regcache.h"
 #include "gdbsupport/function-view.h"
+#include "gdbsupport/traits.h"
 
 struct regcache;
 struct regset;
diff --git a/gdbsupport/traits.h b/gdbsupport/traits.h
index 92fe59f..85cbc94 100644
--- a/gdbsupport/traits.h
+++ b/gdbsupport/traits.h
@@ -143,4 +143,8 @@ template<typename Condition>
 using Requires = typename std::enable_if<Condition::value, void>::type;
 }
 
+template<typename T>
+using RequireLongest = gdb::Requires<gdb::Or<std::is_same<T, LONGEST>,
+					     std::is_same<T, ULONGEST>>>;
+
 #endif /* COMMON_TRAITS_H */