diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-10-08 09:20:08 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-10-08 09:20:08 +0900 |
commit | 46f8b5215bbbfcf4bc0caed1daf52b678fd2b976 (patch) | |
tree | d23affe9278ed6830624a47786159d771acce4a7 /Utilities | |
parent | 07d7004802d1086427cd0a86435d9e6f215da2a9 (diff) | |
download | cmake-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/memory | 17 |
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()); |