fork download
  1. #include <iostream>
  2. #include <type_traits>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. auto f = [](auto x, auto y = std::decay_t<decltype(x)>{}) {
  8. ;
  9. };
  10.  
  11. f(0);
  12.  
  13. return 0;
  14. }
Compilation error #stdin compilation error #stdout 0s 15240KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:11:5: error: no match for call to ‘(main()::<lambda(auto:1, auto:2)>) (int)’
  f(0);
     ^
prog.cpp:7:58: note: candidate: template<class auto:1, class auto:2> main()::<lambda(auto:1, auto:2)>::operator decltype (((const main()::<lambda(auto:1, auto:2)>*)((const main()::<lambda(auto:1, auto:2)>* const)0u))->operator()(static_cast<auto:1&&>(<anonymous>), static_cast<auto:2&&>(<anonymous>))) (*)(auto:1, auto:2)() const
  auto f = [](auto x, auto y = std::decay_t<decltype(x)>{}) {
                                                          ^
prog.cpp:7:58: note:   template argument deduction/substitution failed:
prog.cpp:11:5: note:   couldn't deduce template parameter ‘auto:2’
  f(0);
     ^
prog.cpp:7:58: note: candidate: template<class auto:1, class auto:2> main()::<lambda(auto:1, auto:2)>
  auto f = [](auto x, auto y = std::decay_t<decltype(x)>{}) {
                                                          ^
prog.cpp:7:58: note:   template argument deduction/substitution failed:
prog.cpp:11:5: note:   couldn't deduce template parameter ‘auto:2’
  f(0);
     ^
stdout
Standard output is empty