Consider the declaration of a class that contains a lambda function or a reference to it:
#include <utility> template <class Func> struct Holder { Holder(Func && func) : m_func(std::forward<Func>(func)) { } Func m_func; }; template <class Func> auto MakeHolder(Func && func) { return Holder<Func>(std::forward<Func>(func)); }(more…)