Skip to content

Commit

Permalink
Switch from std::tie() to structured binding. (#8117)
Browse files Browse the repository at this point in the history
Addendum to #7866, to switch from using `std::tie()` to structured bindings, as prescribed for C++17.

This required workarounds for compiler restrictions on using aliases from structured bindings as captures in lambdas.

Authors:
  - MithunR (https://github.com/mythrocks)

Approvers:
  - Conor Hoekstra (https://github.com/codereport)
  - Vukasin Milovanovic (https://github.com/vuule)
  - Christopher Harris (https://github.com/cwharris)
  - Nghia Truong (https://github.com/ttnghia)

URL: #8117
  • Loading branch information
mythrocks authored Apr 30, 2021
1 parent cea6c20 commit e6f3f37
Showing 1 changed file with 18 additions and 22 deletions.
40 changes: 18 additions & 22 deletions cpp/src/rolling/grouped_rolling.cu
Original file line number Diff line number Diff line change
Expand Up @@ -313,13 +313,12 @@ std::unique_ptr<column> range_window_ASC(column_view const& input,
rmm::cuda_stream_view stream,
rmm::mr::device_memory_resource* mr)
{
size_type nulls_begin_idx, nulls_end_idx;
std::tie(nulls_begin_idx, nulls_end_idx) = get_null_bounds_for_orderby_column(orderby_column);
auto [h_nulls_begin_idx, h_nulls_end_idx] = get_null_bounds_for_orderby_column(orderby_column);

auto preceding_calculator =
[nulls_begin_idx,
nulls_end_idx,
d_orderby = orderby_column.data<T>(),
[nulls_begin_idx = h_nulls_begin_idx,
nulls_end_idx = h_nulls_end_idx,
d_orderby = orderby_column.data<T>(),
preceding_window,
preceding_window_is_unbounded] __device__(size_type idx) -> size_type {
if (preceding_window_is_unbounded) {
Expand Down Expand Up @@ -351,10 +350,10 @@ std::unique_ptr<column> range_window_ASC(column_view const& input,
auto preceding_column = expand_to_column(preceding_calculator, input.size(), stream, mr);

auto following_calculator =
[nulls_begin_idx,
nulls_end_idx,
num_rows = input.size(),
d_orderby = orderby_column.data<T>(),
[nulls_begin_idx = h_nulls_begin_idx,
nulls_end_idx = h_nulls_end_idx,
num_rows = input.size(),
d_orderby = orderby_column.data<T>(),
following_window,
following_window_is_unbounded] __device__(size_type idx) -> size_type {
if (following_window_is_unbounded) { return num_rows - idx - 1; }
Expand Down Expand Up @@ -471,8 +470,7 @@ std::unique_ptr<column> range_window_ASC(column_view const& input,
rmm::cuda_stream_view stream,
rmm::mr::device_memory_resource* mr)
{
rmm::device_vector<size_type> null_start, null_end;
std::tie(null_start, null_end) =
auto [null_start, null_end] =
get_null_bounds_for_orderby_column(orderby_column, group_offsets, stream);

auto preceding_calculator =
Expand Down Expand Up @@ -577,13 +575,12 @@ std::unique_ptr<column> range_window_DESC(column_view const& input,
rmm::cuda_stream_view stream,
rmm::mr::device_memory_resource* mr)
{
size_type nulls_begin_idx, nulls_end_idx;
std::tie(nulls_begin_idx, nulls_end_idx) = get_null_bounds_for_orderby_column(orderby_column);
auto [h_nulls_begin_idx, h_nulls_end_idx] = get_null_bounds_for_orderby_column(orderby_column);

auto preceding_calculator =
[nulls_begin_idx,
nulls_end_idx,
d_orderby = orderby_column.data<T>(),
[nulls_begin_idx = h_nulls_begin_idx,
nulls_end_idx = h_nulls_end_idx,
d_orderby = orderby_column.data<T>(),
preceding_window,
preceding_window_is_unbounded] __device__(size_type idx) -> size_type {
if (preceding_window_is_unbounded) {
Expand Down Expand Up @@ -617,10 +614,10 @@ std::unique_ptr<column> range_window_DESC(column_view const& input,
auto preceding_column = expand_to_column(preceding_calculator, input.size(), stream, mr);

auto following_calculator =
[nulls_begin_idx,
nulls_end_idx,
num_rows = input.size(),
d_orderby = orderby_column.data<T>(),
[nulls_begin_idx = h_nulls_begin_idx,
nulls_end_idx = h_nulls_end_idx,
num_rows = input.size(),
d_orderby = orderby_column.data<T>(),
following_window,
following_window_is_unbounded] __device__(size_type idx) -> size_type {
if (following_window_is_unbounded) { return (num_rows - idx) - 1; }
Expand Down Expand Up @@ -669,8 +666,7 @@ std::unique_ptr<column> range_window_DESC(column_view const& input,
rmm::cuda_stream_view stream,
rmm::mr::device_memory_resource* mr)
{
rmm::device_vector<size_type> null_start, null_end;
std::tie(null_start, null_end) =
auto [null_start, null_end] =
get_null_bounds_for_orderby_column(orderby_column, group_offsets, stream);

auto preceding_calculator =
Expand Down

0 comments on commit e6f3f37

Please sign in to comment.