Merge pull request #826 from JordanMaples/dev/jomaples/ctad_fix_v2

fix ctad warning in llvm
diff --git a/include/gsl/pointers b/include/gsl/pointers
index 7373826..7afed1c 100644
--- a/include/gsl/pointers
+++ b/include/gsl/pointers
@@ -100,7 +100,7 @@
 
     constexpr operator T() const { return get(); }
     constexpr T operator->() const { return get(); }
-    constexpr decltype(auto) operator*() const { return *get(); } 
+    constexpr decltype(auto) operator*() const { return *get(); }
 
     // prevents compilation when someone attempts to assign a null pointer constant
     not_null(std::nullptr_t) = delete;
@@ -272,6 +272,14 @@
     return strict_not_null<std::remove_cv_t<std::remove_reference_t<T>>>{std::forward<T>(t)};
 }
 
+#if ( defined(__cpp_deduction_guides) && (__cpp_deduction_guides >= 201611L) )
+
+// deduction guides to prevent the ctad-maybe-unsupported warning
+template <class T> not_null(T) -> not_null<T>;
+template <class T> strict_not_null(T) -> strict_not_null<T>;
+
+#endif // ( defined(__cpp_deduction_guides) && (__cpp_deduction_guides >= 201611L) )
+
 } // namespace gsl
 
 namespace std
diff --git a/tests/no_exception_ensure_tests.cpp b/tests/no_exception_ensure_tests.cpp
index b1ae15b..2ec0ebb 100644
--- a/tests/no_exception_ensure_tests.cpp
+++ b/tests/no_exception_ensure_tests.cpp
@@ -28,7 +28,7 @@
 

 void setup_termination_handler() noexcept

 {

-#if defined(_MSC_VER)

+#if defined(GSL_MSVC_USE_STL_NOEXCEPTION_WORKAROUND)

 

     auto& handler = gsl::details::get_terminate_handler();

     handler = &test_terminate;

diff --git a/tests/no_exception_throw_tests.cpp b/tests/no_exception_throw_tests.cpp
index b28ad00..ddb6b07 100644
--- a/tests/no_exception_throw_tests.cpp
+++ b/tests/no_exception_throw_tests.cpp
@@ -28,7 +28,7 @@
 

 void setup_termination_handler() noexcept

 {

-#if defined(_MSC_VER)

+#if defined(GSL_MSVC_USE_STL_NOEXCEPTION_WORKAROUND)

 

     auto& handler = gsl::details::get_terminate_handler();

     handler = &test_terminate;