#include <iostream>
using namespace std;
class Foo
{
public:
  Foo()
  {
    cout << __PRETTY_FUNCTION__ << endl;
  }
  Foo(Foo&&)
  {
    cout << __PRETTY_FUNCTION__ << endl;
  }
  explicit Foo(const Foo&)
  {
    cout << __PRETTY_FUNCTION__ << endl;
  }

};
int main() {
	Foo f;
	//Foo f2 = f; //1
	Foo f3(f); //2
	//錯誤訊息看起來 下面兩種capture的寫法都是跟註解1 一樣的語意? 所以我只要explicit就沒辦法capture by value嗎?
	//auto l = [f4 = f3]() {};
	//auto l = [f4(f3)]() {};
	
	return 0;
}