1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <memory> 11 12// shared_ptr 13 14// template <class U> bool owner_before(shared_ptr<U> const& b) const; 15 16#include <memory> 17#include <cassert> 18 19int main() 20{ 21 const std::shared_ptr<int> p1(new int); 22 const std::shared_ptr<int> p2 = p1; 23 const std::shared_ptr<int> p3(new int); 24 assert(!p1.owner_before(p2)); 25 assert(!p2.owner_before(p1)); 26 assert(p1.owner_before(p3) || p3.owner_before(p1)); 27 assert(p3.owner_before(p1) == p3.owner_before(p2)); 28} 29