fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class foo
  5. {
  6. public:
  7. // lvalue/rvalue修飾された関数は表示されない
  8. auto func1() && -> int
  9. {
  10. return 1;
  11. }
  12. // cv修飾された関数も表示されない
  13. auto func2() const -> int
  14. {
  15. return 2;
  16. }
  17. //例外を投げないと指定された関数も表示されない
  18. auto func3() noexcept -> int
  19. {
  20. return 3;
  21. }
  22. // 当然、全てを合わせた形式も表示されない
  23. auto func4() const & noexcept -> int
  24. {
  25. return 4;
  26. }
  27. //noexceptが関数名だと認識される
  28. int func5() noexcept(true)
  29. {
  30. return 5;
  31. }
  32. };
  33. //alignas が関数だと認識される
  34. alignas(double) int z{6};
  35.  
  36. int main()
  37. {
  38. foo x;
  39. int y = foo().func1()+ x.func2()+ x.func3()+x.func4()+x.func5()+z;
  40. cout << y << endl;
  41.  
  42. return 0;
  43. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
21