diff --git a/include/stdplus/exception.hpp b/include/stdplus/exception.hpp
index 88bf9cb..5390320 100644
--- a/include/stdplus/exception.hpp
+++ b/include/stdplus/exception.hpp
@@ -36,14 +36,6 @@
 };
 
 template <typename F>
-auto ignore(F&& f, const detail::source_location location =
-                       detail::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
@@ -71,6 +63,14 @@
 }
 
 template <typename F>
+auto ignore(F&& f, const detail::source_location location =
+                       detail::source_location::current()) noexcept
+{
+    return ignore(std::forward<F>(f), location.file_name(), location.line(),
+                  location.function_name());
+}
+
+template <typename F>
 auto ignoreQuiet(F&& f) noexcept
 {
     return [f = std::move(f)](auto&&... args) mutable noexcept {
