-
Notifications
You must be signed in to change notification settings - Fork 114
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
[oneDPL][ranges] + zip_view implementation for C++20 #1877
base: main
Are you sure you want to change the base?
Changes from 80 commits
86359d6
93a1b42
ed5d9bf
a5f68a1
24b12bb
ed50010
f9cee36
3307237
7222dcf
ff77abc
32552e8
28124a1
8e3e4bf
127f41e
6b3f64c
22fa2e4
a7a086d
7c88be6
0a763a3
a5513f3
0baed00
9f9b857
7fbc430
946cf2a
0b7f380
28aa293
4e04664
cfa875c
4cbfe57
cfa29c0
1131a2c
5d5ceb8
be339cf
b62e65c
0f023d0
c3388db
02eb5ea
3c8d9f5
70d8f81
f6f62a1
cfd9660
b5fbf9e
5a9976b
a256c9a
bb03833
72aa720
9c6bfa6
08984c5
11094e3
b935f84
bd2fc48
15866b6
04f05e7
501ddf2
e7b7c90
7e3791b
e9fa3ed
1e56735
5e8bd60
c339d19
2106c65
a5a8480
eb5f579
d5f5616
9b0852d
953eb3f
8e427fb
0eb08b6
a766030
a2942ee
3de9dd1
9f5f2d3
35bc5dd
6923b5e
e4f2002
612b5ae
1e8dad9
dce5f5e
69771a3
175dffb
6ff5b7a
7381003
5ae1d7c
1b16802
6e774ca
c2156af
11c8521
8894166
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -385,8 +385,8 @@ inline constexpr bool __enable_comparison_op_v = | |
template <typename T1, typename... T> | ||
struct tuple<T1, T...> | ||
{ | ||
oneapi::dpl::__internal::__copy_assignable_holder<T1> holder; | ||
tuple<T...> next; | ||
oneapi::dpl::__internal::__copy_assignable_holder<T1> holder{}; | ||
tuple<T...> next{}; | ||
|
||
using tuple_type = ::std::tuple<T1, T...>; | ||
|
||
|
@@ -501,6 +501,15 @@ struct tuple<T1, T...> | |
return *this; | ||
} | ||
|
||
template <typename U1, typename... U> | ||
tuple& | ||
operator=(const tuple<U1, U...>& other) const | ||
{ | ||
holder.value = other.holder.value; | ||
next = other.next; | ||
return *this; | ||
} | ||
Comment on lines
+507
to
+514
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It looks like it is not There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It makes sense when we assign constant tuple objects of non-constant references: |
||
|
||
// if T1 is deduced with reference, compiler generates deleted operator= and, | ||
// since "template operator=" is not considered as operator= overload | ||
// the deleted operator= has a preference during lookup | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I propose to add comment why
{}
are required since it is not trivial.