1e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//===----------------------------------------------------------------------===//
2e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//
3e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//                     The LLVM Compiler Infrastructure
4e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//
5e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// This file is dual licensed under the MIT and the University of Illinois Open
6e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// Source Licenses. See LICENSE.TXT for details.
7e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//
8e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot//===----------------------------------------------------------------------===//
9e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
10e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// <memory>
11e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
12e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// template <class X> class auto_ptr;
13e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
14e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// template<class Y> operator auto_ptr<Y>() throw();
15e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
16e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot// REQUIRES: c++98 || c++03 || c++11 || c++14
17e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
18e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include <memory>
19e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include <cassert>
20e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
21e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot#include "../AB.h"
22e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
23e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotstd::auto_ptr<B>
24e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotsource()
25e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
26e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    return std::auto_ptr<B>(new B(1));
27e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
28e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
29e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotvoid
30e779e31468999c7ef69f424a2b8271969833df2android-build-team Robottest()
31e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
32e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    std::auto_ptr<A> ap2(source());
33e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
34e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot
35e779e31468999c7ef69f424a2b8271969833df2android-build-team Robotint main()
36e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot{
37e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot    test();
38e779e31468999c7ef69f424a2b8271969833df2android-build-team Robot}
39