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
5a913696
Commit
5a913696
authored
Feb 16, 2012
by
neverlord
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed requirement
parent
76e3200c
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
10 deletions
+20
-10
cppa/any_tuple.hpp
cppa/any_tuple.hpp
+2
-2
unit_testing/test__fixed_vector.cpp
unit_testing/test__fixed_vector.cpp
+6
-4
unit_testing/test__tuple.cpp
unit_testing/test__tuple.cpp
+12
-4
No files found.
cppa/any_tuple.hpp
View file @
5a913696
...
@@ -124,14 +124,14 @@ class any_tuple
...
@@ -124,14 +124,14 @@ class any_tuple
template
<
typename
T
>
template
<
typename
T
>
inline
T
const
&
get_as
(
size_t
p
)
const
inline
T
const
&
get_as
(
size_t
p
)
const
{
{
CPPA_REQUIRE
(
type_at
(
p
)
==
typeid
(
T
));
CPPA_REQUIRE
(
*
(
type_at
(
p
)
)
==
typeid
(
T
));
return
*
reinterpret_cast
<
T
const
*>
(
at
(
p
));
return
*
reinterpret_cast
<
T
const
*>
(
at
(
p
));
}
}
template
<
typename
T
>
template
<
typename
T
>
inline
T
&
get_mutable_as
(
size_t
p
)
inline
T
&
get_mutable_as
(
size_t
p
)
{
{
CPPA_REQUIRE
(
type_at
(
p
)
==
typeid
(
T
));
CPPA_REQUIRE
(
*
(
type_at
(
p
)
)
==
typeid
(
T
));
return
*
reinterpret_cast
<
T
*>
(
mutable_at
(
p
));
return
*
reinterpret_cast
<
T
*>
(
mutable_at
(
p
));
}
}
...
...
unit_testing/test__fixed_vector.cpp
View file @
5a913696
...
@@ -22,21 +22,23 @@ size_t test__fixed_vector()
...
@@ -22,21 +22,23 @@ size_t test__fixed_vector()
fixed_vector
<
int
,
4
>
vec4
{
1
,
2
};
fixed_vector
<
int
,
4
>
vec4
{
1
,
2
};
fixed_vector
<
int
,
2
>
vec5
{
3
,
4
};
fixed_vector
<
int
,
2
>
vec5
{
3
,
4
};
vec4
.
insert
(
vec4
.
end
(),
vec5
.
begin
(),
vec5
.
end
());
vec4
.
insert
(
vec4
.
end
(),
vec5
.
begin
(),
vec5
.
end
());
auto
vec6
=
vec4
;
CPPA_CHECK_EQUAL
(
vec1
.
size
(),
4
);
CPPA_CHECK_EQUAL
(
vec1
.
size
(),
4
);
CPPA_CHECK_EQUAL
(
vec2
.
size
(),
4
);
CPPA_CHECK_EQUAL
(
vec2
.
size
(),
4
);
CPPA_CHECK_EQUAL
(
vec3
.
size
(),
4
);
CPPA_CHECK_EQUAL
(
vec3
.
size
(),
4
);
CPPA_CHECK_EQUAL
(
vec4
.
size
(),
4
);
CPPA_CHECK_EQUAL
(
vec4
.
size
(),
4
);
CPPA_CHECK_EQUAL
(
vec5
.
size
(),
2
);
CPPA_CHECK_EQUAL
(
vec5
.
size
(),
2
);
CPPA_CHECK_EQUAL
(
vec6
.
size
(),
4
);
CPPA_CHECK_EQUAL
(
vec1
.
full
(),
true
);
CPPA_CHECK_EQUAL
(
vec1
.
full
(),
true
);
CPPA_CHECK_EQUAL
(
vec2
.
full
(),
false
);
CPPA_CHECK_EQUAL
(
vec2
.
full
(),
false
);
CPPA_CHECK_EQUAL
(
vec3
.
full
(),
true
);
CPPA_CHECK_EQUAL
(
vec3
.
full
(),
true
);
CPPA_CHECK_EQUAL
(
vec4
.
full
(),
true
);
CPPA_CHECK_EQUAL
(
vec4
.
full
(),
true
);
CPPA_CHECK_EQUAL
(
vec5
.
full
(),
true
);
CPPA_CHECK_EQUAL
(
vec5
.
full
(),
true
);
CPPA_CHECK_EQUAL
(
vec
4
.
full
(),
true
);
CPPA_CHECK_EQUAL
(
vec
6
.
full
(),
true
);
CPPA_CHECK
(
std
::
equal
(
vec1
.
begin
(),
vec1
.
end
(),
arr1
));
CPPA_CHECK
(
std
::
equal
(
vec1
.
begin
(),
vec1
.
end
(),
arr1
));
CPPA_CHECK
(
std
::
equal
(
vec2
.
rbegin
(),
vec2
.
rend
(),
arr1
));
CPPA_CHECK
(
std
::
equal
(
vec2
.
rbegin
(),
vec2
.
rend
(),
arr1
));
CPPA_CHECK_EQUAL
(
vec4
.
size
(),
vec1
.
size
());
if
(
vec4
.
size
()
==
vec1
.
size
())
CPPA_CHECK
(
std
::
equal
(
vec4
.
begin
(),
vec4
.
end
(),
arr1
));
CPPA_CHECK
(
std
::
equal
(
vec4
.
begin
(),
vec4
.
end
(),
arr1
));
CPPA_CHECK
(
std
::
equal
(
vec6
.
begin
(),
vec6
.
end
(),
arr1
));
CPPA_CHECK
(
std
::
equal
(
vec6
.
begin
(),
vec6
.
end
(),
vec2
.
rbegin
()));
return
CPPA_TEST_RESULT
;
return
CPPA_TEST_RESULT
;
}
}
unit_testing/test__tuple.cpp
View file @
5a913696
...
@@ -41,24 +41,32 @@ size_t test__tuple()
...
@@ -41,24 +41,32 @@ size_t test__tuple()
CPPA_CHECK_EQUAL
(
t0_1
,
2
);
CPPA_CHECK_EQUAL
(
t0_1
,
2
);
// get a view of t0
// get a view of t0
any_tuple
atup0
(
t0
);
any_tuple
atup0
(
t0
);
CPPA_CHECK
(
atup0
.
size
()
==
2
&&
atup0
.
at
(
0
)
==
&
get
<
0
>
(
t0
));
auto
v1opt
=
tuple_cast
<
std
::
string
,
anything
>
(
any_tuple_view
(
atup0
));
auto
v1opt
=
tuple_cast
<
std
::
string
,
anything
>
(
any_tuple_view
(
atup0
));
// the tuple_view forces atup0 to detach from t0
CPPA_CHECK
(
atup0
.
size
()
==
2
&&
atup0
.
at
(
0
)
!=
&
get
<
0
>
(
t0
));
CPPA_CHECK
((
v1opt
));
CPPA_CHECK
((
v1opt
));
if
(
v1opt
)
if
(
v1opt
)
{
{
auto
&
v1
=
*
v1opt
;
auto
&
v1
=
*
v1opt
;
auto
v1_0
=
get
<
0
>
(
v1
);
CPPA_CHECK
((
std
::
is_same
<
decltype
(
v1
),
tuple_view
<
std
::
string
>&>::
value
)
);
CPPA_CHECK_EQUAL
(
v1
.
size
(),
1
);
CPPA_CHECK_EQUAL
(
v1
.
size
(),
1
);
auto
&
v1_0
=
get
<
0
>
(
v1
);
CPPA_CHECK_EQUAL
(
v1_0
,
"1"
);
CPPA_CHECK_EQUAL
(
v1_0
,
"1"
);
CPPA_CHECK_EQUAL
(
atup0
.
at
(
0
),
&
(
get
<
0
>
(
v1
)));
// point to the same
}
}
// use tuple cast to get a subtuple
// use tuple cast to get a subtuple
any_tuple
at0
(
t0
);
any_tuple
at0
(
t0
);
auto
v0opt
=
tuple_cast
<
std
::
string
,
anything
>
(
at0
);
auto
v0opt
=
tuple_cast
<
std
::
string
,
anything
>
(
at0
);
CPPA_CHECK
((
std
::
is_same
<
decltype
(
v0opt
),
option
<
tuple
<
std
::
string
>>>::
value
));
CPPA_CHECK
((
v0opt
));
CPPA_CHECK
((
v0opt
));
CPPA_CHECK
(
at0
.
size
()
==
2
&&
at0
.
at
(
0
)
==
&
get
<
0
>
(
t0
));
if
(
v0opt
)
if
(
v0opt
)
{
{
tuple
<
std
::
string
>&
v0
=
*
v0opt
;
auto
&
v0
=
*
v0opt
;
auto
v0_0
=
get
<
0
>
(
v0
);
CPPA_CHECK
((
std
::
is_same
<
decltype
(
v0
),
tuple
<
std
::
string
>&>::
value
));
CPPA_CHECK
((
std
::
is_same
<
decltype
(
v0_0
),
std
::
string
>::
value
));
auto
&
v0_0
=
get
<
0
>
(
v0
);
CPPA_CHECK
((
std
::
is_same
<
decltype
(
v0_0
),
std
::
string
const
&>::
value
));
CPPA_CHECK_EQUAL
(
v0
.
size
(),
1
);
CPPA_CHECK_EQUAL
(
v0
.
size
(),
1
);
CPPA_CHECK_EQUAL
(
v0_0
,
"1"
);
CPPA_CHECK_EQUAL
(
v0_0
,
"1"
);
CPPA_CHECK_EQUAL
(
get
<
0
>
(
t0
),
get
<
0
>
(
v0
));
CPPA_CHECK_EQUAL
(
get
<
0
>
(
t0
),
get
<
0
>
(
v0
));
...
...
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