diff --git a/include/stdplus/exception.hpp b/include/stdplus/exception.hpp
index a7dbe8b..de8a355 100644
--- a/include/stdplus/exception.hpp
+++ b/include/stdplus/exception.hpp
@@ -1,15 +1,9 @@
 #pragma once
 #include <fmt/format.h>
+#include <source_location>
 #include <system_error>
 #include <utility>
 
-// Forward declare builtins in case they are unsupported
-#if !__has_builtin(__builtin_LINE)
-int __builtin_LINE();
-const char* __builtin_FILE();
-const char* __builtin_FUNCTION();
-#endif
-
 namespace stdplus
 {
 namespace exception
@@ -28,9 +22,15 @@
 };
 
 template <typename F>
-auto ignore(F&& f, const char* file = __builtin_FILE(),
-            int line = __builtin_LINE(),
-            const char* func = __builtin_FUNCTION()) noexcept
+auto ignore(F&& f, const std::source_location location =
+                       std::source_location::current())
+{
+    return ignore(std::forward<F>(f), location.file_name(), location.line(),
+                  location.function_name());
+}
+
+template <typename F>
+auto ignore(F&& f, const char* file, int line, const char* func) noexcept
 {
     return
         [f = std::move(f), file, line, func](auto&&... args) mutable noexcept {
