fork download
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5. auto l = [](){ return 5; };
  6. auto m = l;
  7. l = m;
  8. m = l;
  9. decltype(l) n;
  10. n = l;
  11. l = m;
  12. l = n;
  13.  
  14. std::cout << l() << std::endl;
  15. std::cout << m() << std::endl;
  16. std::cout << n() << std::endl;
  17.  
  18. }
  19.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
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;
      ^
stdout
Standard output is empty