Lambda with static invoke function

int main()
{
int (*fp)(int, char) = [](int a, char b) { return a + b; };
}

Here is the transformed code:

int main()
{
class __lambda_3_28
{
public:
inline /*constexpr */ int operator()(int a, char b) const
{
return a + static_cast<int>(b);
}
using retType_3_28 = int (*)(int, char);
inline constexpr operator retType_3_28 () const noexcept
{
return __invoke;
}
private:
static inline /*constexpr */ int __invoke(int a, char b)
{
return __lambda_3_28{}.operator()(a, b);
}
};
using FuncPtr_3 = int (*)(int, char);
FuncPtr_3 fp = __lambda_3_28{}.operator __lambda_3_28::retType_3_28();
return 0;
}

Live view