From 033a4b12a5e5f67f2f00c23885a3ff04acbeb4cd Mon Sep 17 00:00:00 2001 From: Brad King Date: Sat, 14 Dec 2019 13:28:22 -0500 Subject: bootstrap: Extend C++17 check for our cast functions In commit fc3b4caa2e (Memory management: cast functions for managed pointers, 2019-11-18) we added a check to `Source/Checks/cm_cxx17_check.cpp` to avoid using C++17 mode on a compiler that does not support all our C++17 usage. Add the check to our bootstrap script too. --- bootstrap | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/bootstrap b/bootstrap index 6e89589..1b0cb26 100755 --- a/bootstrap +++ b/bootstrap @@ -1168,10 +1168,20 @@ int check_cxx14() } #endif -#if __cplusplus >= 201703L +#if (__cplusplus >= 201703L || defined(__INTEL_COMPILER) && defined(__cpp_if_constexpr)) #include +template ::type = nullptr> +typename T::pointer get_ptr(T& item) +{ + return item.get(); +} + int check_cxx17() { + // Intel compiler do not handle correctly 'decltype' inside 'invoke_result' + std::unique_ptr u(new int(0)); + get_ptr(u); std::optional oi = 0; return oi.value(); } -- cgit v0.12