Ich habe über folgende Lambda-Syntax gestolpert, die ich nicht verstehe:Was bedeutet <: and :> bei der Deklaration eines Lambda?
#include <iostream>
template<typename Callback>
void do_it(Callback callback) {
callback();
}
template<typename T>
void p() {
std::cout << __PRETTY_FUNCTION__ << std::endl;
}
int main() {
auto a = <:&:> { };
p<decltype(a)>();
do_it(<:&:> { std::cout << "Hello" << std::endl; }); //this
}
Programm erzeugt über einen Ausgang:
void p() [with T = main()::__lambda0]
Hello
Können Sie uns erklären, was bedeutet <:&:> {/* ... */}
? Ist es möglich, auf diese Weise ein Lambda zu deklarieren, das ein Argument annimmt?
https://stackoverflow.com/questions/15736282/what-is-this-smiley-with-beard-expression – Yakk