1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // UNSUPPORTED: c++03, c++11, c++14, c++17 10 11 // unique_ptr 12 13 #include <memory> 14 15 #include <iterator> 16 17 static_assert(std::indirectly_readable<std::unique_ptr<int> >); 18 static_assert(std::indirectly_writable<std::unique_ptr<int>, int>); 19 static_assert(!std::weakly_incrementable<std::unique_ptr<int> >); 20 static_assert(std::indirectly_movable<std::unique_ptr<int>, std::unique_ptr<int>>); 21 static_assert(std::indirectly_movable_storable<std::unique_ptr<int>, std::unique_ptr<int>>); 22 static_assert(std::indirectly_copyable<std::unique_ptr<int>, std::unique_ptr<int>>); 23 static_assert(std::indirectly_copyable_storable<std::unique_ptr<int>, std::unique_ptr<int>>); 24 static_assert(std::indirectly_swappable<std::unique_ptr<int>, std::unique_ptr<int> >); 25 26 static_assert(!std::indirectly_readable<std::unique_ptr<void> >); 27 static_assert(!std::indirectly_writable<std::unique_ptr<void>, void>); 28 static_assert(!std::weakly_incrementable<std::unique_ptr<void> >); 29 static_assert(!std::indirectly_movable<std::unique_ptr<void>, std::unique_ptr<void>>); 30 static_assert(!std::indirectly_movable_storable<std::unique_ptr<void>, std::unique_ptr<void>>); 31 static_assert(!std::indirectly_copyable<std::unique_ptr<void>, std::unique_ptr<void>>); 32 static_assert(!std::indirectly_copyable_storable<std::unique_ptr<void>, std::unique_ptr<void>>); 33