1274955Ssvnmir//===----------------------------------------------------------------------===//
2274955Ssvnmir//
3274955Ssvnmir// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4274955Ssvnmir// See https://llvm.org/LICENSE.txt for license information.
5274955Ssvnmir// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6274955Ssvnmir//
7274955Ssvnmir//===----------------------------------------------------------------------===//
8274955Ssvnmir
9274955Ssvnmir#ifndef _LIBCPP___TYPE_TRAITS_IS_NOTHROW_MOVE_ASSIGNABLE_H
10274955Ssvnmir#define _LIBCPP___TYPE_TRAITS_IS_NOTHROW_MOVE_ASSIGNABLE_H
11274955Ssvnmir
12274955Ssvnmir#include <__config>
13274955Ssvnmir#include <__type_traits/add_lvalue_reference.h>
14274955Ssvnmir#include <__type_traits/add_rvalue_reference.h>
15274955Ssvnmir#include <__type_traits/integral_constant.h>
16274955Ssvnmir
17274955Ssvnmir#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
18274955Ssvnmir#  pragma GCC system_header
19274955Ssvnmir#endif
20274955Ssvnmir
21274955Ssvnmir_LIBCPP_BEGIN_NAMESPACE_STD
22274955Ssvnmir
23288943Sdimtemplate <class _Tp>
24288943Sdimstruct _LIBCPP_TEMPLATE_VIS is_nothrow_move_assignable
25274955Ssvnmir    : public integral_constant<
26274955Ssvnmir          bool,
27288943Sdim          __is_nothrow_assignable(__add_lvalue_reference_t<_Tp>, __add_rvalue_reference_t<_Tp>)> {
28288943Sdim};
29288943Sdim
30296417Sdim#if _LIBCPP_STD_VER > 14
31296417Sdimtemplate <class _Tp>
32296417Sdiminline constexpr bool is_nothrow_move_assignable_v = is_nothrow_move_assignable<_Tp>::value;
33296417Sdim#endif
34274955Ssvnmir
35274955Ssvnmir_LIBCPP_END_NAMESPACE_STD
36274955Ssvnmir
37274955Ssvnmir#endif // _LIBCPP___TYPE_TRAITS_IS_NOTHROW_MOVE_ASSIGNABLE_H
38274955Ssvnmir