// { dg-do run { target c++11 } }
// { dg-require-effective-target hosted }

#include <functional>
#include <testsuite_hooks.h>

struct Funk
{
  Funk() = default;
  Funk(const Funk&) { ++copies; }
  Funk(Funk&&) { ++moves; }

  void operator()() const { }

  static int copies;
  static int moves;
};

int Funk::copies = 0;
int Funk::moves = 0;

int main()
{
  Funk e;
  // LWG 2774 means there should be no move here:
  std::function<void()> fc(e);
  VERIFY(Funk::copies == 1);
  VERIFY(Funk::moves == 0);
  // And only one move here:
  std::function<void()> fm(std::move(e));
  VERIFY(Funk::copies == 1);
  VERIFY(Funk::moves == 1);
}
