17026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant//===----------------------------------------------------------------------===//
27026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant//
37026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant//                     The LLVM Compiler Infrastructure
47026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant//
5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
77026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant//
87026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant//===----------------------------------------------------------------------===//
97026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant
107026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant#include <memory>
117026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant#include <string>
127026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant#include <cassert>
137026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant
147026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnantint main()
157026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant{
167026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant#if _LIBCPP_STD_VER > 11
177026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    {
187026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    std::unique_ptr<int> p1 = std::make_unique<int>(1);
197026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    assert ( *p1 == 1 );
207026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    p1 = std::make_unique<int> ();
217026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    assert ( *p1 == 0 );
227026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    }
237026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant
247026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    {
257026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    std::unique_ptr<std::string> p2 = std::make_unique<std::string> ( "Meow!" );
267026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    assert ( *p2 == "Meow!" );
277026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    p2 = std::make_unique<std::string> ();
287026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    assert ( *p2 == "" );
297026a17a482a9f7fdd9fc41aead6a167167efb1bHoward Hinnant    p2 = std::make_unique<std::string> ( 6, 'z' );
30    assert ( *p2 == "zzzzzz" );
31    }
32#endif  // _LIBCPP_STD_VER > 11
33}
34