// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include <vector>

#include "scoped_refptr.h"

struct Foo {
  int dummy;
};

typedef std::vector<scoped_refptr<Foo>> FooList;

void TestsAScopedRefptr() {
  FooList list;
  list.push_back(new Foo);
  list.push_back(new Foo);
  for (FooList::const_iterator it = list.begin(); it != list.end(); ++it) {
    if (!it->get())
      continue;
    Foo* item = it->get();
  }
}
