diff --git a/triqs/clef/clef.hpp b/triqs/clef/clef.hpp index fb7c6934..e299e0c5 100644 --- a/triqs/clef/clef.hpp +++ b/triqs/clef/clef.hpp @@ -551,6 +551,13 @@ namespace triqs { namespace clef { * The lookup happens by ADL, so IT MUST BE USED IN THE triqs::lazy namespace * --------------------------------------------------------------------------------------------------- */ #define TRIQS_CLEF_MAKE_FNT_LAZY(name) \ + struct name##_lazy_impl { \ + template auto operator()(A&&... a) const DECL_AND_RETURN(name(std::forward(a)...)); \ + }; \ + template auto name(A&&... a) DECL_AND_RETURN(make_expr_call(name##_lazy_impl(), std::forward(a)...)); + + +#define TRIQS_CLEF_MAKE_FNT_LAZY_BIS(name) \ struct name##_lazy_impl { \ template auto operator()(A&&... a) const -> decltype(name(std::forward(a)...)); \ }; \