Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid new warning C5267 for deprecated implicit copy ctor/assign #3497

Merged
merged 2 commits into from
Feb 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions stl/inc/bitset
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ public:
friend bitset<_Bits>;

public:
_CONSTEXPR23 reference(const reference&) = default;

_CONSTEXPR23 ~reference() noexcept {} // TRANSITION, ABI

_CONSTEXPR23 reference& operator=(const bool _Val) noexcept {
Expand All @@ -44,11 +46,6 @@ public:
return *this;
}

_CONSTEXPR23 reference& flip() noexcept {
_Pbitset->_Flip_unchecked(_Mypos);
return *this;
}

_NODISCARD _CONSTEXPR23 bool operator~() const noexcept {
return !_Pbitset->_Subscript(_Mypos);
}
Expand All @@ -57,6 +54,11 @@ public:
return _Pbitset->_Subscript(_Mypos);
}

_CONSTEXPR23 reference& flip() noexcept {
_Pbitset->_Flip_unchecked(_Mypos);
return *this;
}

private:
_CONSTEXPR23 reference() noexcept : _Pbitset(nullptr), _Mypos(0) {}

Expand Down
2 changes: 2 additions & 0 deletions tests/std/tests/Dev08_576265_list_remove/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ struct Val {
unsigned int canary;
Val() : value(0), canary(0xDEADBEEF) {}
Val(int val) : value(val), canary(0x600DF00D) {}
Val(const Val&) = default;
Val& operator=(const Val&) = default;
~Val() {
canary = 0xDEADBEEF;
}
Expand Down
2 changes: 2 additions & 0 deletions tests/std/tests/Dev11_0437519_container_behavior/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ void assert_forward_list_resize_empty() {

struct A {
A(unsigned int value) : _value(value) {}
A(const A&) = default;
A& operator=(const A&) = default;
~A() {
_value = 0;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ struct has_default {
has_default(const has_default& v) : x(v.x) {
++has_default_objects;
}
has_default& operator=(const has_default&) = default;

~has_default() {
--has_default_objects;
Expand All @@ -38,6 +39,7 @@ struct no_default {
no_default(const no_default& v) : x(v.x) {
++no_default_objects;
}
no_default& operator=(const no_default&) = default;

~no_default() {
--no_default_objects;
Expand Down
6 changes: 6 additions & 0 deletions tests/std/tests/P0220R1_any/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1211,6 +1211,8 @@ namespace modifiers::emplace {
struct Tracked {
static int count;
Tracked() {++count;}
Tracked(Tracked const&) noexcept {++count;}
Tracked& operator=(Tracked const&) = default;
~Tracked() { --count; }
};
int Tracked::count = 0;
Expand Down Expand Up @@ -2976,6 +2978,10 @@ namespace msvc {
Tracked() {
++count;
}
Tracked(Tracked const&) noexcept {
++count;
}
Tracked& operator=(Tracked const&) = default;
~Tracked() {
--count;
}
Expand Down
11 changes: 11 additions & 0 deletions tests/std/tests/P0220R1_optional/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2372,6 +2372,8 @@ class Y
static bool dtor_called;
Y() = default;
Y(int) { TEST_THROW(6);}
Y(const Y&) = default;
Y& operator=(const Y&) = default;
~Y() {dtor_called = true;}
};

Expand Down Expand Up @@ -2659,6 +2661,8 @@ class X
constexpr X(int i, bool& dtor_called) : i_(i), dtor_called_(&dtor_called) {}
constexpr X(std::initializer_list<int> il, bool& dtor_called)
: i_(il.begin()[0]), j_(il.begin()[1]), dtor_called_(&dtor_called) {}
X(const X&) = default;
X& operator=(const X&) = default;
TEST_CONSTEXPR_CXX20 ~X() {*dtor_called_ = true;}

friend constexpr bool operator==(const X& x, const X& y)
Expand Down Expand Up @@ -2688,6 +2692,8 @@ class Z
Z(int i) : i_(i) {}
Z(std::initializer_list<int> il) : i_(il.begin()[0]), j_(il.begin()[1])
{ TEST_THROW(6);}
Z(const Z&) = default;
Z& operator=(const Z&) = default;
~Z() {dtor_called = true;}

friend bool operator==(const Z& x, const Z& y)
Expand Down Expand Up @@ -5336,6 +5342,8 @@ class X
public:
static bool dtor_called;
X() = default;
X(const X&) = default;
X& operator=(const X&) = default;
~X() {dtor_called = true;}
};

Expand Down Expand Up @@ -5401,6 +5409,9 @@ using std::optional;
struct X
{
static bool dtor_called;
X() = default;
X(const X&) = default;
X& operator=(const X&) = default;
~X() {dtor_called = true;}
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ struct double_double {
};
struct convertible_bool {
convertible_bool(bool x) : x_(x) {}
~convertible_bool() = default;

operator bool() const noexcept {
return x_;
Expand Down
4 changes: 4 additions & 0 deletions tests/std/tests/P0674R1_make_shared_for_arrays/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -643,6 +643,10 @@ struct WeirdDeleter {
delete ptr;
}

WeirdDeleter() = default;
WeirdDeleter(const WeirdDeleter&) = default;
WeirdDeleter& operator=(const WeirdDeleter&) = default;

~WeirdDeleter() noexcept(false) {}
};
static_assert(!is_nothrow_destructible_v<WeirdDeleter<int>>);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,15 +263,19 @@ template <class T>
struct A {
T value;

constexpr A() noexcept = default;
constexpr ~A() = default;
constexpr A() noexcept = default;
constexpr A(const A&) noexcept = default;
constexpr A& operator=(const A&) noexcept = default;
constexpr ~A() = default;
};

template <class T>
struct nontrivial_A {
T value;

constexpr nontrivial_A(T in = T{}) noexcept : value(in) {}
constexpr nontrivial_A(const nontrivial_A&) noexcept = default;
constexpr nontrivial_A& operator=(const nontrivial_A&) noexcept = default;
constexpr ~nontrivial_A() {}
};

Expand Down
7 changes: 7 additions & 0 deletions tests/std/tests/P0896R4_views_join/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -477,6 +477,13 @@ void test_non_trivially_destructible_type() { // COMPILE-ONLY
using difference_type = int;
using value_type = int;

// Provide some way to construct this type.
non_trivially_destructible_input_iterator(double, double) {}

non_trivially_destructible_input_iterator(const non_trivially_destructible_input_iterator&) = default;
non_trivially_destructible_input_iterator& operator=(
const non_trivially_destructible_input_iterator&) = default;

~non_trivially_destructible_input_iterator() {}

// To test the correct specialization of _Defaultabox, this type must not be default constructible.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ struct With_nontrivial_destructor {
int _val = 0;
constexpr With_nontrivial_destructor(const int val) noexcept : _val(val) {}
constexpr With_nontrivial_destructor(initializer_list<int> vals) noexcept : _val(*vals.begin()) {}
With_nontrivial_destructor(const With_nontrivial_destructor&) = default;
With_nontrivial_destructor& operator=(const With_nontrivial_destructor&) = default;
constexpr ~With_nontrivial_destructor() {}

constexpr bool operator==(const int right) const noexcept {
Expand Down