Selaa lähdekoodia

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

Merge-request: !4971
Brad King 5 vuotta sitten
vanhempi
sitoutus
9fbd3df21e
1 muutettua tiedostoa jossa 9 lisäystä ja 8 poistoa
  1. 9 8
      Utilities/std/cmext/memory

+ 9 - 8
Utilities/std/cmext/memory

@@ -12,18 +12,19 @@
 
 
 namespace cm {
 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)
 T& static_reference_cast(O& item)
 {
 {
   return *(static_cast<T*>(item.get()));
   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)
 T& dynamic_reference_cast(O& item)
 {
 {
   auto p = dynamic_cast<T*>(item.get());
   auto p = dynamic_cast<T*>(item.get());