diff --git a/include/continuable/continuable-result.hpp b/include/continuable/continuable-result.hpp index af58cad..7d7538b 100644 --- a/include/continuable/continuable-result.hpp +++ b/include/continuable/continuable-result.hpp @@ -225,7 +225,7 @@ auto make_result(T&&... values) { namespace std { // The GCC standard library defines tuple_size as class and struct which // triggers a warning here. -#if defined(__clang__) || defined(__GNUC__) +#if defined(__clang__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmismatched-tags" #endif diff --git a/include/continuable/detail/core/base.hpp b/include/continuable/detail/core/base.hpp index d1d067e..27f47ec 100644 --- a/include/continuable/detail/core/base.hpp +++ b/include/continuable/detail/core/base.hpp @@ -150,13 +150,13 @@ public: /// we don't jump accidentally from the exception path to the result path. template constexpr auto invoke_callback(T&& callable, exception_arg_t exception_arg, - Args&&... args) noexcept { + Args&&... args) { return util::partial_invoke(std::integral_constant{}, std::forward(callable), exception_arg, std::forward(args)...); } template -constexpr auto invoke_callback(T&& callable, Args&&... args) noexcept { +constexpr auto invoke_callback(T&& callable, Args&&... args) { return util::partial_invoke(std::integral_constant{}, std::forward(callable), std::forward(args)...); diff --git a/include/continuable/detail/utility/util.hpp b/include/continuable/detail/utility/util.hpp index 71a6f60..5620d2e 100644 --- a/include/continuable/detail/utility/util.hpp +++ b/include/continuable/detail/utility/util.hpp @@ -131,7 +131,8 @@ template partial_invoke(std::integral_constant, T&& callable, Args&&... args) { // Test whether we are able to call the function with the given arguments. - traits::is_invokable_from_tuple> + constexpr traits::is_invokable_from_tuple> is_invokable; // The implementation is done in a shortcut way so there are less