diff --git a/src/aether-miscpp/domain_visitor/details/node_visitor.h b/src/aether-miscpp/domain_visitor/details/node_visitor.h index cfbd0f1..898452e 100644 --- a/src/aether-miscpp/domain_visitor/details/node_visitor.h +++ b/src/aether-miscpp/domain_visitor/details/node_visitor.h @@ -15,6 +15,7 @@ */ #ifndef AETHER_MISCPP_DOMAIN_VISITOR_DETAILS_NODE_VISITOR_H_ #define AETHER_MISCPP_DOMAIN_VISITOR_DETAILS_NODE_VISITOR_H_ + #include #include #include @@ -61,9 +62,10 @@ bool CallVisitor(U&& obj, Visitor&& visitor) { if constexpr (std::is_invocable_v) { if constexpr (std::is_same_v>) { return std::invoke(std::forward(visitor), std::forward(obj)); + } else { + std::invoke(std::forward(visitor), std::forward(obj)); + return true; } - std::invoke(std::forward(visitor), std::forward(obj)); - return true; } else { return true; } diff --git a/src/aether-miscpp/misc/defer.h b/src/aether-miscpp/misc/defer.h index aa69877..b1d45d7 100644 --- a/src/aether-miscpp/misc/defer.h +++ b/src/aether-miscpp/misc/defer.h @@ -17,9 +17,9 @@ #ifndef AETHER_MISCPP_MISC_DEFER_H_ #define AETHER_MISCPP_MISC_DEFER_H_ -#include #include #include +#include namespace ae { /** @@ -65,9 +65,11 @@ constexpr auto operator<<(MakeScopeExit, TCallable&& cb) { } } // namespace ae -#define ae_defer_at MakeScopeExit{} << #define AEMSCPP_CONCAT_(a, b) a##b #define AEMSCPP_CONCAT(a, b) AEMSCPP_CONCAT_(a, b) + +#define ae_defer_at ::ae::MakeScopeExit{} << + #define ae_defer auto AEMSCPP_CONCAT(SCOPE_GUARD_, __LINE__) = ae_defer_at #endif // AETHER_MISCPP_MISC_DEFER_H_