]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/still_shared.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / tr1 / 2_general_utilities / enable_shared_from_this / still_shared.cc
CommitLineData
85ec4feb 1// Copyright (C) 2005-2018 Free Software Foundation, Inc.
7dfded91
JW
2//
3// This file is part of the GNU ISO C++ Library. This library is free
4// software; you can redistribute it and/or modify it under the
5// terms of the GNU General Public License as published by the
748086b7 6// Free Software Foundation; either version 3, or (at your option)
7dfded91
JW
7// any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13
14// You should have received a copy of the GNU General Public License along
748086b7
JJ
15// with this library; see the file COPYING3. If not see
16// <http://www.gnu.org/licenses/>.
7dfded91
JW
17
18// 2.2.5 Template class enable_shared_from_this [tr.util.smartptr.enab]
19
20#include <tr1/memory>
21#include <testsuite_hooks.h>
22
23struct X : public std::tr1::enable_shared_from_this<X>
24{
25};
26
27int
28test01()
29{
236c57d1 30 bool test = true;
7dfded91
JW
31
32 std::tr1::shared_ptr<X> p(new X);
33
34 *p = X(); // assigning to shared object doesn't stop it being shared
35
36 try
37 {
38 std::tr1::shared_ptr<X> p2 = p->shared_from_this();
39 }
40 catch (const std::tr1::bad_weak_ptr&)
41 {
42 test = false;
43 }
44 VERIFY( test );
45
46 return 0;
47}
48
f92ab29f 49int
7dfded91
JW
50main()
51{
52 test01();
53 return 0;
54}