コード例 #1
0
int main(int, char**) {
  test_sfinae();
  {
    std::unique_ptr<B> bptr(new B);
    std::unique_ptr<A> aptr(new A);
    testAssign(aptr, bptr);
  }
  assert(A::count == 0);
  assert(B::count == 0);
  {
    Deleter<B> del(42);
    std::unique_ptr<B, Deleter<B> > bptr(new B, std::move(del));
    std::unique_ptr<A, Deleter<A> > aptr(new A);
    testAssign(aptr, bptr);
    checkDeleter(aptr, bptr, 42, 0);
  }
  assert(A::count == 0);
  assert(B::count == 0);
  {
    CDeleter<A> adel(6);
    CDeleter<B> bdel(42);
    std::unique_ptr<B, CDeleter<B>&> bptr(new B, bdel);
    std::unique_ptr<A, CDeleter<A>&> aptr(new A, adel);
    testAssign(aptr, bptr);
    checkDeleter(aptr, bptr, 42, 42);
  }
  assert(A::count == 0);
  assert(B::count == 0);

  return 0;
}
コード例 #2
0
int main() {
  test_sfinae();
}
コード例 #3
0
int main() {
  test_sfinae();
  // FIXME: add tests
}