Lambda with static invoke function
int
main
()
{
int (*fp)(int, char) = [](
int
a,
char
b) {
return
a + b; };
}
main
int main()
Definition:
OptionDocumentationGenerator.cpp:46
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
Generated by
1.9.1