summaryrefslogtreecommitdiff
path: root/Utilities
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2021-10-08 09:20:08 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2021-10-08 09:20:08 +0900
commit46f8b5215bbbfcf4bc0caed1daf52b678fd2b976 (patch)
treed23affe9278ed6830624a47786159d771acce4a7 /Utilities
parent07d7004802d1086427cd0a86435d9e6f215da2a9 (diff)
downloadcmake-46f8b5215bbbfcf4bc0caed1daf52b678fd2b976.tar.gz
cmake-46f8b5215bbbfcf4bc0caed1daf52b678fd2b976.tar.bz2
cmake-46f8b5215bbbfcf4bc0caed1daf52b678fd2b976.zip
Imported Upstream version 3.17.5upstream/3.17.5
Diffstat (limited to 'Utilities')
-rw-r--r--Utilities/std/cmext/memory17
1 files changed, 9 insertions, 8 deletions
diff --git a/Utilities/std/cmext/memory b/Utilities/std/cmext/memory
index 50e79dfe2..fa326f0e3 100644
--- a/Utilities/std/cmext/memory
+++ b/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());