Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
Actor Framework
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
Actor Framework
Commits
64e57a01
Commit
64e57a01
authored
May 28, 2018
by
Dominik Charousset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support non-float types that can compare to float
parent
cb019a17
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
8 deletions
+12
-8
libcaf_test/caf/test/unit_test.hpp
libcaf_test/caf/test/unit_test.hpp
+12
-8
No files found.
libcaf_test/caf/test/unit_test.hpp
View file @
64e57a01
...
...
@@ -65,10 +65,12 @@ struct compare_visitor {
struct
equality_operator
{
template
<
class
T
,
class
U
,
typename
std
::
enable_if
<
(
std
::
is_floating_point
<
T
>
::
value
||
std
::
is_floating_point
<
U
>::
value
)
&&
detail
::
is_comparable
<
T
,
U
>::
value
,
int
>::
type
=
0
>
detail
::
enable_if_t
<
((
std
::
is_floating_point
<
T
>
::
value
&&
std
::
is_convertible
<
U
,
double
>::
value
)
||
(
std
::
is_floating_point
<
U
>::
value
&&
std
::
is_convertible
<
T
,
double
>::
value
))
&&
detail
::
is_comparable
<
T
,
U
>::
value
,
int
>
=
0
>
bool
operator
()(
const
T
&
t
,
const
U
&
u
)
const
{
auto
x
=
static_cast
<
long
double
>
(
t
);
auto
y
=
static_cast
<
long
double
>
(
u
);
...
...
@@ -78,10 +80,12 @@ struct equality_operator {
}
template
<
class
T
,
class
U
,
typename
std
::
enable_if
<!
std
::
is_floating_point
<
T
>
::
value
&&
!
std
::
is_floating_point
<
U
>::
value
&&
detail
::
is_comparable
<
T
,
U
>::
value
,
int
>::
type
=
0
>
detail
::
enable_if_t
<!
((
std
::
is_floating_point
<
T
>
::
value
&&
std
::
is_convertible
<
U
,
double
>::
value
)
||
(
std
::
is_floating_point
<
U
>::
value
&&
std
::
is_convertible
<
T
,
double
>::
value
))
&&
detail
::
is_comparable
<
T
,
U
>::
value
,
int
>
=
0
>
bool
operator
()(
const
T
&
x
,
const
U
&
y
)
const
{
return
x
==
y
;
}
...
...
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