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<T[]>::pointer type 15 16 #include <memory> 17 #include <type_traits> 18 19 struct Deleter 20 { 21 struct pointer {}; 22 }; 23 24 int 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