#include <iostream> int main() { auto l = [](){ return 5; }; auto m = l; l = m; m = l; decltype(l) n; n = l; l = m; l = n; std::cout << l() << std::endl; std::cout << m() << std::endl; std::cout << n() << std::endl; }
Standard input is empty
prog.cpp: In function ‘int main()’:
prog.cpp:7:6: error: use of deleted function ‘main()::<lambda()>& main()::<lambda()>::operator=(const main()::<lambda()>&)’
l = m;
^
prog.cpp:5:12: note: a lambda closure type has a deleted copy assignment operator
auto l = [](){ return 5; };
^
prog.cpp:8:6: error: use of deleted function ‘main()::<lambda()>& main()::<lambda()>::operator=(const main()::<lambda()>&)’
m = l;
^
prog.cpp:9:14: error: use of deleted function ‘main()::<lambda()>::<lambda>()’
decltype(l) n;
^
prog.cpp:5:12: note: a lambda closure type has a deleted default constructor
auto l = [](){ return 5; };
^
prog.cpp:10:6: error: use of deleted function ‘main()::<lambda()>& main()::<lambda()>::operator=(const main()::<lambda()>&)’
n = l;
^
prog.cpp:11:6: error: use of deleted function ‘main()::<lambda()>& main()::<lambda()>::operator=(const main()::<lambda()>&)’
l = m;
^
prog.cpp:12:6: error: use of deleted function ‘main()::<lambda()>& main()::<lambda()>::operator=(const main()::<lambda()>&)’
l = n;
^
Standard output is empty