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
ff1ff1f5
Commit
ff1ff1f5
authored
Mar 07, 2012
by
neverlord
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
changed operator, to non-member function
parent
a9300af4
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
13 deletions
+27
-13
cppa/behavior.hpp
cppa/behavior.hpp
+2
-0
cppa/partial_function.hpp
cppa/partial_function.hpp
+12
-8
src/partial_function.cpp
src/partial_function.cpp
+13
-5
No files found.
cppa/behavior.hpp
View file @
ff1ff1f5
...
...
@@ -49,6 +49,8 @@ namespace cppa {
class
behavior
{
friend
behavior
operator
,(
partial_function
&&
lhs
,
behavior
&&
rhs
);
behavior
(
behavior
const
&
)
=
delete
;
behavior
&
operator
=
(
behavior
const
&
)
=
delete
;
...
...
cppa/partial_function.hpp
View file @
ff1ff1f5
...
...
@@ -44,13 +44,16 @@ class behavior;
class
partial_function
{
partial_function
(
partial_function
const
&
)
=
delete
;
partial_function
&
operator
=
(
partial_function
const
&
)
=
delete
;
public:
typedef
std
::
unique_ptr
<
detail
::
invokable
>
invokable_ptr
;
partial_function
()
=
default
;
partial_function
(
partial_function
&&
other
);
partial_function
&
operator
=
(
partial_function
&&
other
);
partial_function
(
invokable_ptr
&&
ptr
);
...
...
@@ -70,13 +73,6 @@ class partial_function
return
splice
(
std
::
forward
<
Args
>
(
args
)...);
}
inline
partial_function
operator
,(
partial_function
&&
arg
)
{
return
std
::
move
(
splice
(
std
::
move
(
arg
)));
}
behavior
operator
,(
behavior
&&
arg
);
private:
// terminates recursion
...
...
@@ -97,6 +93,14 @@ class partial_function
};
inline
partial_function
operator
,(
partial_function
&&
lhs
,
partial_function
&&
rhs
)
{
return
std
::
move
(
lhs
.
splice
(
std
::
move
(
rhs
)));
}
behavior
operator
,(
partial_function
&&
lhs
,
behavior
&&
rhs
);
}
// namespace cppa
#endif // PARTIAL_FUNCTION_HPP
src/partial_function.cpp
View file @
ff1ff1f5
...
...
@@ -35,14 +35,21 @@
namespace
cppa
{
partial_function
::
partial_function
(
invokable_ptr
&&
ptr
)
{
m_funs
.
push_back
(
std
::
move
(
ptr
));
}
partial_function
::
partial_function
(
partial_function
&&
other
)
:
m_funs
(
std
::
move
(
other
.
m_funs
))
{
}
partial_function
::
partial_function
(
invokable_ptr
&&
pt
r
)
partial_function
&
partial_function
::
operator
=
(
partial_function
&&
othe
r
)
{
m_funs
.
push_back
(
std
::
move
(
ptr
));
m_funs
=
std
::
move
(
other
.
m_funs
);
m_cache
.
clear
();
return
*
this
;
}
auto
partial_function
::
get_cache_entry
(
any_tuple
const
&
value
)
->
cache_entry
&
...
...
@@ -110,10 +117,11 @@ detail::intermediate* partial_function::get_intermediate(any_tuple const& value)
return
nullptr
;
}
behavior
partial_function
::
operator
,(
behavior
&&
arg
)
behavior
operator
,(
partial_function
&&
lhs
,
behavior
&&
rhs
)
{
behavior
bhvr
{
std
::
move
(
arg
)};
bhvr
.
get_partial_function
().
m_funs
=
std
::
move
(
m_funs
);
behavior
bhvr
{
rhs
.
m_timeout
,
std
::
move
(
rhs
.
m_timeout_handler
)};
bhvr
.
get_partial_function
().
splice
(
std
::
move
(
rhs
.
get_partial_function
()),
std
::
move
(
lhs
));
return
bhvr
;
}
...
...
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