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// unique_ptr
13
14// Test unique_ptr::pointer type
15
16#include <memory>
17#include <type_traits>
18
19struct Deleter
20{
21    struct pointer {};
22};
23
24int main()
25{
26    {
27    typedef std::unique_ptr<int> P;
28    static_assert((std::is_same<P::pointer, int*>::value), "");
29    }
30    {
31    typedef std::unique_ptr<int, Deleter> P;
32    static_assert((std::is_same<P::pointer, Deleter::pointer>::value), "");
33    }
34}
35