forked from OSchip/llvm-project
62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
#ifndef TEST_STD_CONCEPTS_LAND_MOVECONSTRUCTIBLE_H
|
|
#define TEST_STD_CONCEPTS_LAND_MOVECONSTRUCTIBLE_H
|
|
|
|
struct HasDefaultOps {};
|
|
|
|
struct CustomMoveCtor {
|
|
CustomMoveCtor(CustomMoveCtor&&) noexcept;
|
|
};
|
|
|
|
struct MoveOnly {
|
|
MoveOnly(MoveOnly&&) noexcept = default;
|
|
MoveOnly& operator=(MoveOnly&&) noexcept = default;
|
|
MoveOnly(const MoveOnly&) = delete;
|
|
MoveOnly& operator=(const MoveOnly&) = default;
|
|
};
|
|
|
|
struct CustomMoveAssign {
|
|
CustomMoveAssign(CustomMoveAssign&&) noexcept;
|
|
CustomMoveAssign& operator=(CustomMoveAssign&&) noexcept;
|
|
};
|
|
|
|
struct DeletedMoveCtor {
|
|
DeletedMoveCtor(DeletedMoveCtor&&) = delete;
|
|
};
|
|
|
|
struct ImplicitlyDeletedMoveCtor {
|
|
DeletedMoveCtor X;
|
|
};
|
|
|
|
struct DeletedMoveAssign {
|
|
DeletedMoveAssign& operator=(DeletedMoveAssign&&) = default;
|
|
};
|
|
|
|
struct ImplicitlyDeletedMoveAssign {
|
|
DeletedMoveAssign X;
|
|
};
|
|
|
|
class MemberLvalueReference {
|
|
public:
|
|
MemberLvalueReference(int&);
|
|
|
|
private:
|
|
int& X;
|
|
};
|
|
|
|
class MemberRvalueReference {
|
|
public:
|
|
MemberRvalueReference(int&&);
|
|
|
|
private:
|
|
int&& X;
|
|
};
|
|
|
|
#endif // TEST_STD_CONCEPTS_LAND_MOVECONSTRUCTIBLE_H
|