вывод? Причём это уже точно не порядковый номер)
#include <iostream>
void foo(auto it, auto it2)
{
std::cout << it << " : " << it2 << std::endl;
}
int main()
{
auto lambda = [](){
int a = 5;
a++;
std::cout << a << std::endl;
};
foo(lambda, lambda);
return 0;
}
toxa@toxa-PC:~/Development$ g++ test.cpp -std=c++17 -g
test.cpp:3:10: warning: use of ‘auto’ in parameter declaration only available with -fconcepts
void foo(auto it, auto it2)
^~~~
test.cpp:3:19: warning: use of ‘auto’ in parameter declaration only available with -fconcepts
void foo(auto it, auto it2)
^~~~
toxa@toxa-PC:~/Development$ ./a.out
1 : 1
в деманге тип лямбды выглядит так main::{lambda()#1}
потому что лямбда без захвата по стандарту имеет право приводиться к указателю на свободную функцию. а указатель - к булю. шланг и каель опять лососонули тунца. а большой брат жосиси - прав.
Обсуждают сегодня