#include <memory>

template <typename T>
class CList {
public:
  CList(){}
private:
  CList(const CList& rhs) {}
};

struct hoge {
};

std::unique_ptr<CList<hoge> > foo()
{
  std::unique_ptr<CList<hoge> > baz(new CList<hoge>);
  return baz;
}

int main()
{
  std::unique_ptr<CList<hoge> > bar = foo();
}
