fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3. class Foo
  4. {
  5. public:
  6. Foo()
  7. {
  8. cout << __PRETTY_FUNCTION__ << endl;
  9. }
  10. Foo(Foo&&)
  11. {
  12. cout << __PRETTY_FUNCTION__ << endl;
  13. }
  14. explicit Foo(const Foo&)
  15. {
  16. cout << __PRETTY_FUNCTION__ << endl;
  17. }
  18.  
  19. };
  20. int main() {
  21. Foo f;
  22. //Foo f2 = f; //1
  23. Foo f3(f); //2
  24. //錯誤訊息看起來 下面兩種capture的寫法都是跟註解1 一樣的語意? 所以我只要explicit就沒辦法capture by value嗎?
  25. //auto l = [f4 = f3]() {};
  26. //auto l = [f4(f3)]() {};
  27.  
  28. return 0;
  29. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
Foo::Foo()
Foo::Foo(const Foo&)