diff --git a/BaseLib/Algorithm.h b/BaseLib/Algorithm.h
index c7b971b5e519f2f3cda514bfca7a8ba963cf2a15..6bef36eae22131c09c4e04db7a0a6da911249849 100644
--- a/BaseLib/Algorithm.h
+++ b/BaseLib/Algorithm.h
@@ -319,5 +319,13 @@ struct Overloaded : Ts...
 {
     using Ts::operator()...;
 };
+#if defined(__clang__)
+#if ((__clang_major__ == 16 && !defined(__apple_build_version__)) || \
+     (__clang_major__ == 15 && defined(__apple_build_version__)))
+/// Explicit deduction guide needed for apple's clang-15 and clang-16.
+template <class... Ts>
+Overloaded(Ts...) -> Overloaded<Ts...>;
+#endif
+#endif
 
 }  // namespace BaseLib