Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Sudhanshu Sane
VTK-m
Commits
1e6c30b7
Commit
1e6c30b7
authored
Jul 02, 2018
by
Allison Vacanti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make pair construction rvalue-friendly.
parent
6c6ebaff
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
2 deletions
+33
-2
vtkm/Pair.h
vtkm/Pair.h
+33
-2
No files found.
vtkm/Pair.h
View file @
1e6c30b7
...
...
@@ -73,6 +73,16 @@ struct Pair
{
}
VTKM_EXEC_CONT
Pair
(
FirstType
&&
firstSrc
,
SecondType
&&
secondSrc
)
:
first
(
std
::
move
(
firstSrc
))
,
second
(
std
::
move
(
secondSrc
))
{
}
Pair
(
const
Pair
&
)
=
default
;
Pair
(
Pair
&&
)
=
default
;
template
<
typename
U1
,
typename
U2
>
VTKM_EXEC_CONT
Pair
(
const
vtkm
::
Pair
<
U1
,
U2
>&
src
)
:
first
(
src
.
first
)
...
...
@@ -80,6 +90,13 @@ struct Pair
{
}
template
<
typename
U1
,
typename
U2
>
VTKM_EXEC_CONT
Pair
(
vtkm
::
Pair
<
U1
,
U2
>&&
src
)
:
first
(
std
::
move
(
src
.
first
))
,
second
(
std
::
move
(
src
.
second
))
{
}
template
<
typename
U1
,
typename
U2
>
VTKM_EXEC_CONT
Pair
(
const
std
::
pair
<
U1
,
U2
>&
src
)
:
first
(
src
.
first
)
...
...
@@ -87,8 +104,16 @@ struct Pair
{
}
template
<
typename
U1
,
typename
U2
>
VTKM_EXEC_CONT
Pair
(
std
::
pair
<
U1
,
U2
>&&
src
)
:
first
(
std
::
move
(
src
.
first
))
,
second
(
std
::
move
(
src
.
second
))
{
}
vtkm
::
Pair
<
FirstType
,
SecondType
>&
operator
=
(
const
vtkm
::
Pair
<
FirstType
,
SecondType
>&
src
)
=
default
;
vtkm
::
Pair
<
FirstType
,
SecondType
>&
operator
=
(
vtkm
::
Pair
<
FirstType
,
SecondType
>&&
src
)
=
default
;
VTKM_EXEC_CONT
bool
operator
==
(
const
vtkm
::
Pair
<
FirstType
,
SecondType
>&
other
)
const
...
...
@@ -141,9 +166,15 @@ VTKM_EXEC_CONT vtkm::Pair<T, U> operator+(const vtkm::Pair<T, U>& a, const vtkm:
}
template
<
typename
T1
,
typename
T2
>
VTKM_EXEC_CONT
vtkm
::
Pair
<
T1
,
T2
>
make_Pair
(
const
T1
&
firstSrc
,
const
T2
&
secondSrc
)
VTKM_EXEC_CONT
vtkm
::
Pair
<
typename
std
::
decay
<
T1
>::
type
,
typename
std
::
decay
<
T2
>::
type
>
make_Pair
(
T1
&&
v1
,
T2
&&
v2
)
{
return
vtkm
::
Pair
<
T1
,
T2
>
(
firstSrc
,
secondSrc
);
using
DT1
=
typename
std
::
decay
<
T1
>::
type
;
using
DT2
=
typename
std
::
decay
<
T2
>::
type
;
using
PairT
=
vtkm
::
Pair
<
DT1
,
DT2
>
;
return
PairT
(
std
::
forward
<
T1
>
(
v1
),
std
::
forward
<
T2
>
(
v2
));
}
}
// namespace vtkm
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment