[meta] Rewrite is_cr_convertible
authorBehdad Esfahbod <behdad@behdad.org>
Sat, 11 May 2019 03:17:30 +0000 (20:17 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Sat, 11 May 2019 03:17:30 +0000 (20:17 -0700)
src/hb-meta.hh

index ef6d989..334a44a 100644 (file)
@@ -162,14 +162,11 @@ using hb_is_base_of = hb_is_convertible<hb_decay<Derived> *, hb_decay<Base> *>;
 #define hb_is_base_of(Base,Derived) hb_is_base_of<Base, Derived>::value
 
 template <typename From, typename To>
-struct hb_is_cr_convertible
-{
-  public:
-  static constexpr bool value =
-    hb_is_same (hb_decay<From>, hb_decay<To>) &&
-    (!hb_is_const (From) || hb_is_const (To)) &&
-    (!hb_is_reference (To) || hb_is_const (To) || hb_is_reference (To));
-};
+using hb_is_cr_convertible = hb_bool_constant<
+  hb_is_same (hb_decay<From>, hb_decay<To>) &&
+  (!hb_is_const (From) || hb_is_const (To)) &&
+  (!hb_is_reference (To) || hb_is_const (To) || hb_is_reference (To))
+>;
 #define hb_is_cr_convertible(From,To) hb_is_cr_convertible<From, To>::value
 
 /* std::move and std::forward */