Skip to content
Snippets Groups Projects

[Debug] declare LOG_STR_LAMBDA's return type because gcc 8.3 can't infer it

Merged Florian Fischer requested to merge aj46ezos/emper:fix_debug_for_older_compilers into master
1 file
+ 1
1
Compare changes
  • Side-by-side
  • Inline
+ 1
1
@@ -18,7 +18,7 @@
// The lamda should be fairly cheap/free because it will be inlined.
// The use of a lambda here is the ISO C++ equivalent to GCC statement expressions.
// NOLINTNEXTLINE(bugprone-macro-parentheses)
#define LOG_STR_LAMBDA(x, new_line) [&](){std::stringstream sst; sst << x; if constexpr (new_line) { sst << std::endl; }; return sst.str(); }
#define LOG_STR_LAMBDA(x, new_line) [&]() -> std::string {std::stringstream sst; sst << x; if constexpr (new_line) { sst << std::endl; }; return sst.str(); }
// NOLINTNEXTLINE(bugprone-macro-parentheses)
#define LOG(level, x, log_func, new_line) do {if constexpr (level > EMPER_LOG_LEVEL) { break; } log_func(LOG_STR_LAMBDA(x, new_line)()); } while (false)
Loading