[meta] Capture rvalue-references in is_reference / remove_reference
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 8 May 2019 21:44:11 +0000 (14:44 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 8 May 2019 22:08:33 +0000 (15:08 -0700)
src/hb-meta.hh

index a47c8ca..421eb06 100644 (file)
@@ -93,6 +93,7 @@ template <typename T> using hb_remove_const = typename hb_match_const<T>::type;
 #define hb_is_const(T) hb_match_const<T>::value
 template <typename T> struct hb_match_reference { typedef T type; enum { value = false }; };
 template <typename T> struct hb_match_reference<T &> { typedef T type; enum { value = true }; };
+template <typename T> struct hb_match_reference<T &&> { typedef T type; enum { value = true }; };
 template <typename T> using hb_remove_reference = typename hb_match_reference<T>::type;
 #define hb_is_reference(T) hb_match_reference<T>::value
 template <typename T> struct hb_match_pointer { typedef T type; enum { value = false }; };