fork(1) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <functional>
  4. #include <type_traits>
  5.  
  6. int main()
  7. {
  8. std::vector<int>v = {0,1,2,3,4,5,6};
  9. auto f_lambda = [&v](int i) { return v[i];};
  10. std::function<const int&(int)> f = f_lambda;
  11. auto g_lambda = [&v](int i) -> const int& { return v[i];};
  12. std::function<const int&(int)> g = g_lambda;
  13.  
  14. std::cout << std::is_same<decltype(f_lambda(3)), int>::value << "\n";
  15. std::cout << std::is_same<decltype(f_lambda(3)), const int&>::value << "\n";
  16. std::cout << std::is_same<decltype(g_lambda(3)), int>::value << "\n";
  17. std::cout << std::is_same<decltype(g_lambda(3)), const int&>::value << "\n";
  18. std::cout << f(3) << ' ' << g(3) << std::endl;
  19. return 0;
  20. }
Success #stdin #stdout 0s 3276KB
stdin
Standard input is empty
stdout
1
0
0
1
134516160 3