Browse Source

Merge branch 'backport-3.17-cmext-vs16-declval' into release-3.17

Merge-request: !4971
Brad King 5 năm trước cách đây
mục cha
commit
9fbd3df21e
1 tập tin đã thay đổi với 9 bổ sung8 xóa
  1. 9 8
      Utilities/std/cmext/memory

+ 9 - 8
Utilities/std/cmext/memory

@@ -12,18 +12,19 @@
 
 namespace cm {
 
-template <typename T, typename O,
-          cm::enable_if_t<
-            std::is_pointer<cm::invoke_result_t<decltype(&O::get), O>>::value,
-            int> = 0>
+template <
+  typename T, typename O,
+  cm::enable_if_t<std::is_pointer<decltype(std::declval<O>().get())>::value,
+                  int> = 0>
 T& static_reference_cast(O& item)
 {
   return *(static_cast<T*>(item.get()));
 }
-template <typename T, typename O,
-          cm::enable_if_t<
-            std::is_pointer<cm::invoke_result_t<decltype(&O::get), O>>::value,
-            int> = 0>
+
+template <
+  typename T, typename O,
+  cm::enable_if_t<std::is_pointer<decltype(std::declval<O>().get())>::value,
+                  int> = 0>
 T& dynamic_reference_cast(O& item)
 {
   auto p = dynamic_cast<T*>(item.get());