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
4f3e13d6
Commit
4f3e13d6
authored
Jun 05, 2012
by
Dominik Charousset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
formatting
parent
64dbf780
Changes
31
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
63 additions
and
55 deletions
+63
-55
cppa/any_tuple.hpp
cppa/any_tuple.hpp
+1
-1
cppa/attachable.hpp
cppa/attachable.hpp
+2
-2
cppa/cow_tuple.hpp
cppa/cow_tuple.hpp
+1
-1
cppa/detail/abstract_tuple.hpp
cppa/detail/abstract_tuple.hpp
+2
-2
cppa/detail/container_tuple_view.hpp
cppa/detail/container_tuple_view.hpp
+1
-1
cppa/detail/decorated_tuple.hpp
cppa/detail/decorated_tuple.hpp
+1
-1
cppa/detail/default_uniform_type_info_impl.hpp
cppa/detail/default_uniform_type_info_impl.hpp
+6
-6
cppa/detail/empty_tuple.hpp
cppa/detail/empty_tuple.hpp
+1
-1
cppa/detail/list_member.hpp
cppa/detail/list_member.hpp
+1
-1
cppa/detail/map_member.hpp
cppa/detail/map_member.hpp
+1
-1
cppa/detail/native_socket.hpp
cppa/detail/native_socket.hpp
+1
-1
cppa/detail/object_array.hpp
cppa/detail/object_array.hpp
+1
-1
cppa/detail/object_impl.hpp
cppa/detail/object_impl.hpp
+1
-1
cppa/detail/pair_member.hpp
cppa/detail/pair_member.hpp
+1
-1
cppa/detail/primitive_member.hpp
cppa/detail/primitive_member.hpp
+1
-1
cppa/detail/pseudo_tuple.hpp
cppa/detail/pseudo_tuple.hpp
+1
-1
cppa/detail/tdata.hpp
cppa/detail/tdata.hpp
+6
-6
cppa/detail/tuple_iterator.hpp
cppa/detail/tuple_iterator.hpp
+1
-1
cppa/detail/tuple_vals.hpp
cppa/detail/tuple_vals.hpp
+2
-2
cppa/detail/tuple_view.hpp
cppa/detail/tuple_view.hpp
+1
-1
cppa/match_expr.hpp
cppa/match_expr.hpp
+1
-1
cppa/object.hpp
cppa/object.hpp
+1
-1
cppa/to_string.hpp
cppa/to_string.hpp
+1
-1
cppa/type_value_pair.hpp
cppa/type_value_pair.hpp
+2
-2
cppa/uniform_type_info.hpp
cppa/uniform_type_info.hpp
+3
-3
cppa/util/abstract_uniform_type_info.hpp
cppa/util/abstract_uniform_type_info.hpp
+3
-3
cppa/util/is_iterable.hpp
cppa/util/is_iterable.hpp
+1
-1
src/abstract_tuple.cpp
src/abstract_tuple.cpp
+1
-1
src/object.cpp
src/object.cpp
+1
-1
src/object_array.cpp
src/object_array.cpp
+1
-1
src/uniform_type_info.cpp
src/uniform_type_info.cpp
+15
-7
No files found.
cppa/any_tuple.hpp
View file @
4f3e13d6
...
...
@@ -109,7 +109,7 @@ class any_tuple {
/**
* @brief Gets a const pointer to the element at position @p p.
*/
void
const
*
at
(
size_t
p
)
const
;
const
void
*
at
(
size_t
p
)
const
;
/**
* @brief Gets {@link uniform_type_info uniform type information}
...
...
cppa/attachable.hpp
View file @
4f3e13d6
...
...
@@ -61,8 +61,8 @@ class attachable {
/**
* @brief Any value, used to identify @c attachable instances.
*/
void
const
*
ptr
;
inline
token
(
const
std
::
type_info
&
msubtype
,
void
const
*
mptr
)
const
void
*
ptr
;
inline
token
(
const
std
::
type_info
&
msubtype
,
const
void
*
mptr
)
:
subtype
(
msubtype
),
ptr
(
mptr
)
{
}
};
...
...
cppa/cow_tuple.hpp
View file @
4f3e13d6
...
...
@@ -139,7 +139,7 @@ class cow_tuple {
/**
* @brief Gets a const pointer to the element at position @p p.
*/
inline
void
const
*
at
(
size_t
p
)
const
{
inline
const
void
*
at
(
size_t
p
)
const
{
return
m_vals
->
at
(
p
);
}
...
...
cppa/detail/abstract_tuple.hpp
View file @
4f3e13d6
...
...
@@ -65,12 +65,12 @@ class abstract_tuple : public ref_counted {
// accessors
virtual
size_t
size
()
const
=
0
;
virtual
abstract_tuple
*
copy
()
const
=
0
;
virtual
void
const
*
at
(
size_t
pos
)
const
=
0
;
virtual
const
void
*
at
(
size_t
pos
)
const
=
0
;
virtual
uniform_type_info
const
*
type_at
(
size_t
pos
)
const
=
0
;
// returns either tdata<...> object or nullptr (default) if tuple
// is not a 'native' implementation
virtual
void
const
*
native_data
()
const
;
virtual
const
void
*
native_data
()
const
;
// Identifies the type of the implementation.
// A statically typed tuple implementation can use some optimizations,
...
...
cppa/detail/container_tuple_view.hpp
View file @
4f3e13d6
...
...
@@ -63,7 +63,7 @@ class container_tuple_view : public abstract_tuple {
return
new
container_tuple_view
{
new
Container
(
*
m_ptr
),
true
};
}
void
const
*
at
(
size_t
pos
)
const
{
const
void
*
at
(
size_t
pos
)
const
{
CPPA_REQUIRE
(
pos
<
size
());
auto
i
=
m_ptr
->
begin
();
std
::
advance
(
i
,
pos
);
...
...
cppa/detail/decorated_tuple.hpp
View file @
4f3e13d6
...
...
@@ -86,7 +86,7 @@ class decorated_tuple : public abstract_tuple {
return
new
decorated_tuple
(
*
this
);
}
virtual
void
const
*
at
(
size_t
pos
)
const
{
virtual
const
void
*
at
(
size_t
pos
)
const
{
CPPA_REQUIRE
(
pos
<
size
());
return
m_decorated
->
at
(
m_mapping
[
pos
]);
}
...
...
cppa/detail/default_uniform_type_info_impl.hpp
View file @
4f3e13d6
...
...
@@ -111,7 +111,7 @@ class default_uniform_type_info_impl : public util::abstract_uniform_type_info<T
uniform_type_info
*
m_meta
;
std
::
function
<
void
(
uniform_type_info
const
*
,
void
const
*
,
const
void
*
,
serializer
*
)
>
m_serialize
;
std
::
function
<
void
(
uniform_type_info
const
*
,
...
...
@@ -139,7 +139,7 @@ class default_uniform_type_info_impl : public util::abstract_uniform_type_info<T
template
<
typename
R
,
class
C
>
member
(
uniform_type_info
*
mtptr
,
R
C
::*
mem_ptr
)
:
m_meta
(
mtptr
)
{
m_serialize
=
[
mem_ptr
]
(
uniform_type_info
const
*
mt
,
void
const
*
obj
,
const
void
*
obj
,
serializer
*
s
)
{
mt
->
serialize
(
&
(
*
reinterpret_cast
<
C
const
*>
(
obj
).
*
mem_ptr
),
s
);
};
...
...
@@ -159,7 +159,7 @@ class default_uniform_type_info_impl : public util::abstract_uniform_type_info<T
static_assert
(
std
::
is_same
<
getter_result
,
setter_arg
>::
value
,
"getter result doesn't match setter argument"
);
m_serialize
=
[
getter
]
(
uniform_type_info
const
*
mt
,
void
const
*
obj
,
const
void
*
obj
,
serializer
*
s
)
{
GRes
v
=
(
*
reinterpret_cast
<
C
const
*>
(
obj
).
*
getter
)();
mt
->
serialize
(
&
v
,
s
);
...
...
@@ -181,7 +181,7 @@ class default_uniform_type_info_impl : public util::abstract_uniform_type_info<T
static
member
fake_member
(
uniform_type_info
*
mtptr
)
{
return
{
mtptr
,
[]
(
uniform_type_info
const
*
mt
,
void
const
*
obj
,
serializer
*
s
)
{
[]
(
uniform_type_info
const
*
mt
,
const
void
*
obj
,
serializer
*
s
)
{
mt
->
serialize
(
obj
,
s
);
},
[]
(
uniform_type_info
const
*
mt
,
void
*
obj
,
deserializer
*
d
)
{
...
...
@@ -199,7 +199,7 @@ class default_uniform_type_info_impl : public util::abstract_uniform_type_info<T
return
*
this
;
}
inline
void
serialize
(
void
const
*
parent
,
serializer
*
s
)
const
{
inline
void
serialize
(
const
void
*
parent
,
serializer
*
s
)
const
{
m_serialize
(
m_meta
,
parent
,
s
);
}
...
...
@@ -310,7 +310,7 @@ class default_uniform_type_info_impl : public util::abstract_uniform_type_info<T
}
}
void
serialize
(
void
const
*
obj
,
serializer
*
s
)
const
{
void
serialize
(
const
void
*
obj
,
serializer
*
s
)
const
{
s
->
begin_object
(
this
->
name
());
for
(
auto
&
m
:
m_members
)
{
m
.
serialize
(
obj
,
s
);
...
...
cppa/detail/empty_tuple.hpp
View file @
4f3e13d6
...
...
@@ -45,7 +45,7 @@ class empty_tuple : public abstract_tuple {
size_t
size
()
const
;
void
*
mutable_at
(
size_t
);
abstract_tuple
*
copy
()
const
;
void
const
*
at
(
size_t
)
const
;
const
void
*
at
(
size_t
)
const
;
bool
equals
(
const
abstract_tuple
&
other
)
const
;
uniform_type_info
const
*
type_at
(
size_t
)
const
;
std
::
type_info
const
*
type_token
()
const
;
...
...
cppa/detail/list_member.hpp
View file @
4f3e13d6
...
...
@@ -94,7 +94,7 @@ class list_member : public util::abstract_uniform_type_info<List> {
public:
void
serialize
(
void
const
*
obj
,
serializer
*
s
)
const
{
void
serialize
(
const
void
*
obj
,
serializer
*
s
)
const
{
auto
&
list
=
*
reinterpret_cast
<
List
const
*>
(
obj
);
m_helper
(
list
,
s
);
}
...
...
cppa/detail/map_member.hpp
View file @
4f3e13d6
...
...
@@ -124,7 +124,7 @@ class map_member : public util::abstract_uniform_type_info<Map> {
public:
void
serialize
(
void
const
*
obj
,
serializer
*
s
)
const
{
void
serialize
(
const
void
*
obj
,
serializer
*
s
)
const
{
auto
&
mp
=
*
reinterpret_cast
<
Map
const
*>
(
obj
);
s
->
begin_sequence
(
mp
.
size
());
for
(
const
auto
&
val
:
mp
)
{
...
...
cppa/detail/native_socket.hpp
View file @
4f3e13d6
...
...
@@ -51,7 +51,7 @@ namespace cppa { namespace detail {
constexpr
SOCKET
invalid_socket
=
INVALID_SOCKET
;
#else
typedef
int
native_socket_type
;
typedef
void
const
*
socket_send_ptr
;
typedef
const
void
*
socket_send_ptr
;
typedef
void
*
socket_recv_ptr
;
constexpr
int
invalid_socket
=
-
1
;
void
closesocket
(
native_socket_type
s
);
...
...
cppa/detail/object_array.hpp
View file @
4f3e13d6
...
...
@@ -61,7 +61,7 @@ class object_array : public abstract_tuple {
abstract_tuple
*
copy
()
const
;
void
const
*
at
(
size_t
pos
)
const
;
const
void
*
at
(
size_t
pos
)
const
;
bool
equals
(
const
cppa
::
detail
::
abstract_tuple
&
)
const
;
...
...
cppa/detail/object_impl.hpp
View file @
4f3e13d6
...
...
@@ -50,7 +50,7 @@ struct obj_impl : object {
virtual
object
*
copy
()
const
{
return
new
obj_impl
(
m_value
);
}
virtual
const
utype
&
type
()
const
{
return
uniform_type_info
<
T
>
();
}
virtual
void
*
mutable_value
()
{
return
&
m_value
;
}
virtual
void
const
*
value
()
const
{
return
&
m_value
;
}
virtual
const
void
*
value
()
const
{
return
&
m_value
;
}
virtual
void
serialize
(
serializer
&
s
)
const
{
s
<<
m_value
;
}
...
...
cppa/detail/pair_member.hpp
View file @
4f3e13d6
...
...
@@ -54,7 +54,7 @@ class pair_member : public util::abstract_uniform_type_info<std::pair<T1,T2>> {
public:
void
serialize
(
void
const
*
obj
,
serializer
*
s
)
const
{
void
serialize
(
const
void
*
obj
,
serializer
*
s
)
const
{
auto
&
p
=
*
reinterpret_cast
<
pair_type
const
*>
(
obj
);
primitive_variant
values
[
2
]
=
{
p
.
first
,
p
.
second
};
s
->
write_tuple
(
2
,
values
);
...
...
cppa/detail/primitive_member.hpp
View file @
4f3e13d6
...
...
@@ -50,7 +50,7 @@ class primitive_member : public util::abstract_uniform_type_info<T> {
public:
void
serialize
(
void
const
*
obj
,
serializer
*
s
)
const
{
void
serialize
(
const
void
*
obj
,
serializer
*
s
)
const
{
s
->
write_value
(
*
reinterpret_cast
<
T
const
*>
(
obj
));
}
...
...
cppa/detail/pseudo_tuple.hpp
View file @
4f3e13d6
...
...
@@ -38,7 +38,7 @@ namespace cppa { namespace detail {
template
<
typename
...
T
>
struct
pseudo_tuple
{
typedef
void
*
ptr_type
;
typedef
void
const
*
const_ptr_type
;
typedef
const
void
*
const_ptr_type
;
ptr_type
data
[
sizeof
...(
T
)
>
0
?
sizeof
...(
T
)
:
1
];
...
...
cppa/detail/tdata.hpp
View file @
4f3e13d6
...
...
@@ -60,13 +60,13 @@ template<typename T>
inline
void
*
ptr_to
(
T
&
what
)
{
return
&
what
;
}
template
<
typename
T
>
inline
void
const
*
ptr_to
(
const
T
&
what
)
{
return
&
what
;
}
inline
const
void
*
ptr_to
(
const
T
&
what
)
{
return
&
what
;
}
template
<
typename
T
>
inline
void
*
ptr_to
(
T
*
what
)
{
return
what
;
}
template
<
typename
T
>
inline
void
const
*
ptr_to
(
T
const
*
what
)
{
return
what
;
}
inline
const
void
*
ptr_to
(
T
const
*
what
)
{
return
what
;
}
template
<
typename
T
>
inline
void
*
ptr_to
(
const
std
::
reference_wrapper
<
T
>&
what
)
{
...
...
@@ -74,7 +74,7 @@ inline void* ptr_to(const std::reference_wrapper<T>& what) {
}
template
<
typename
T
>
inline
void
const
*
ptr_to
(
const
std
::
reference_wrapper
<
const
T
>&
what
)
{
inline
const
void
*
ptr_to
(
const
std
::
reference_wrapper
<
const
T
>&
what
)
{
return
&
(
what
.
get
());
}
...
...
@@ -160,7 +160,7 @@ struct tdata<> {
const
tdata
<>&
ctail
()
const
{
return
*
this
;
}
inline
void
const
*
at
(
size_t
)
const
{
inline
const
void
*
at
(
size_t
)
const
{
throw
std
::
out_of_range
(
"tdata<>"
);
}
...
...
@@ -307,7 +307,7 @@ struct tdata<Head, Tail...> : tdata<Tail...> {
inline
const
tdata
<
Tail
...
>&
ctail
()
const
{
return
*
this
;
}
inline
void
const
*
at
(
size_t
p
)
const
{
inline
const
void
*
at
(
size_t
p
)
const
{
CPPA_REQUIRE
(
p
<
num_elements
);
switch
(
p
)
{
case
0
:
return
ptr_to
(
head
);
...
...
@@ -324,7 +324,7 @@ struct tdata<Head, Tail...> : tdata<Tail...> {
inline
void
*
mutable_at
(
size_t
p
)
{
# ifdef CPPA_DEBUG
if
(
p
==
0
)
{
if
(
std
::
is_same
<
decltype
(
ptr_to
(
head
)),
void
const
*>::
value
)
{
if
(
std
::
is_same
<
decltype
(
ptr_to
(
head
)),
const
void
*>::
value
)
{
throw
std
::
logic_error
{
"mutable_at with const head"
};
}
return
const_cast
<
void
*>
(
ptr_to
(
head
));
...
...
cppa/detail/tuple_iterator.hpp
View file @
4f3e13d6
...
...
@@ -95,7 +95,7 @@ class tuple_iterator {
inline
size_t
position
()
const
{
return
m_pos
;
}
inline
void
const
*
value
()
const
{
inline
const
void
*
value
()
const
{
return
m_tuple
->
at
(
m_pos
);
}
...
...
cppa/detail/tuple_vals.hpp
View file @
4f3e13d6
...
...
@@ -66,7 +66,7 @@ class tuple_vals : public abstract_tuple {
:
super
(
tuple_impl_info
::
statically_typed
),
m_data
(
args
...)
{
}
void
const
*
native_data
()
const
{
const
void
*
native_data
()
const
{
return
&
m_data
;
}
...
...
@@ -90,7 +90,7 @@ class tuple_vals : public abstract_tuple {
return
new
tuple_vals
(
*
this
);
}
void
const
*
at
(
size_t
pos
)
const
{
const
void
*
at
(
size_t
pos
)
const
{
CPPA_REQUIRE
(
pos
<
size
());
return
m_data
.
at
(
pos
);
}
...
...
cppa/detail/tuple_view.hpp
View file @
4f3e13d6
...
...
@@ -91,7 +91,7 @@ class tuple_view : public abstract_tuple {
return
result
;
}
void
const
*
at
(
size_t
pos
)
const
{
const
void
*
at
(
size_t
pos
)
const
{
CPPA_REQUIRE
(
pos
<
size
());
return
m_data
.
at
(
pos
);
}
...
...
cppa/match_expr.hpp
View file @
4f3e13d6
...
...
@@ -677,7 +677,7 @@ class match_expr {
typedef
typename
util
::
if_else_c
<
has_manipulator
,
void
*
,
util
::
wrapped
<
void
const
*>
util
::
wrapped
<
const
void
*>
>::
type
ptr_type
;
...
...
cppa/object.hpp
View file @
4f3e13d6
...
...
@@ -131,7 +131,7 @@ class object {
* @returns A const pointer to the currently stored value.
* @see get(const object&)
*/
void
const
*
value
()
const
;
const
void
*
value
()
const
;
/**
* @brief Gets the stored value.
...
...
cppa/to_string.hpp
View file @
4f3e13d6
...
...
@@ -38,7 +38,7 @@ namespace cppa {
namespace
detail
{
std
::
string
to_string_impl
(
void
const
*
what
,
uniform_type_info
const
*
utype
);
std
::
string
to_string_impl
(
const
void
*
what
,
uniform_type_info
const
*
utype
);
}
// namespace detail
...
...
cppa/type_value_pair.hpp
View file @
4f3e13d6
...
...
@@ -37,7 +37,7 @@
namespace
cppa
{
typedef
std
::
pair
<
uniform_type_info
const
*
,
void
const
*>
type_value_pair
;
typedef
std
::
pair
<
uniform_type_info
const
*
,
const
void
*>
type_value_pair
;
class
type_value_pair_const_iterator
{
...
...
@@ -63,7 +63,7 @@ class type_value_pair_const_iterator {
inline
uniform_type_info
const
*
type
()
const
{
return
iter
->
first
;
}
inline
void
const
*
value
()
const
{
return
iter
->
second
;
}
inline
const
void
*
value
()
const
{
return
iter
->
second
;
}
inline
decltype
(
iter
)
base
()
const
{
return
iter
;
}
...
...
cppa/uniform_type_info.hpp
View file @
4f3e13d6
...
...
@@ -216,7 +216,7 @@ class uniform_type_info {
* @returns @p true if <tt>*instance1 == *instance2</tt>.
* @pre @p instance1 and @p instance2 have the type of @p this.
*/
virtual
bool
equals
(
void
const
*
instance1
,
void
const
*
instance2
)
const
=
0
;
virtual
bool
equals
(
const
void
*
instance1
,
const
void
*
instance2
)
const
=
0
;
/**
* @brief Serializes @p instance to @p sink.
...
...
@@ -224,7 +224,7 @@ class uniform_type_info {
* @param sink Target data sink.
* @pre @p instance has the type of @p this.
*/
virtual
void
serialize
(
void
const
*
instance
,
serializer
*
sink
)
const
=
0
;
virtual
void
serialize
(
const
void
*
instance
,
serializer
*
sink
)
const
=
0
;
/**
* @brief Deserializes @p instance from @p source.
...
...
@@ -254,7 +254,7 @@ class uniform_type_info {
* with the default constructor.
* @pre @p instance has the type of @p this or is set to @p nullptr.
*/
virtual
void
*
new_instance
(
void
const
*
instance
=
nullptr
)
const
=
0
;
virtual
void
*
new_instance
(
const
void
*
instance
=
nullptr
)
const
=
0
;
private:
...
...
cppa/util/abstract_uniform_type_info.hpp
View file @
4f3e13d6
...
...
@@ -43,7 +43,7 @@ namespace cppa { namespace util {
template
<
typename
T
>
class
abstract_uniform_type_info
:
public
uniform_type_info
{
inline
static
const
T
&
deref
(
void
const
*
ptr
)
{
inline
static
const
T
&
deref
(
const
void
*
ptr
)
{
return
*
reinterpret_cast
<
T
const
*>
(
ptr
);
}
...
...
@@ -58,11 +58,11 @@ class abstract_uniform_type_info : public uniform_type_info {
:
uniform_type_info
(
uname
)
{
}
bool
equals
(
void
const
*
lhs
,
void
const
*
rhs
)
const
{
bool
equals
(
const
void
*
lhs
,
const
void
*
rhs
)
const
{
return
deref
(
lhs
)
==
deref
(
rhs
);
}
void
*
new_instance
(
void
const
*
ptr
)
const
{
void
*
new_instance
(
const
void
*
ptr
)
const
{
return
(
ptr
)
?
new
T
(
deref
(
ptr
))
:
new
T
();
}
...
...
cppa/util/is_iterable.hpp
View file @
4f3e13d6
...
...
@@ -57,7 +57,7 @@ class is_iterable {
}
// SFNINAE default
static
void
sfinae_fun
(
void
const
*
)
{
}
static
void
sfinae_fun
(
const
void
*
)
{
}
typedef
decltype
(
sfinae_fun
(
static_cast
<
T
const
*>
(
nullptr
)))
result_type
;
...
...
src/abstract_tuple.cpp
View file @
4f3e13d6
...
...
@@ -47,7 +47,7 @@ std::type_info const* abstract_tuple::type_token() const {
return
&
typeid
(
void
);
}
void
const
*
abstract_tuple
::
native_data
()
const
{
const
void
*
abstract_tuple
::
native_data
()
const
{
return
nullptr
;
}
...
...
src/object.cpp
View file @
4f3e13d6
...
...
@@ -102,7 +102,7 @@ uniform_type_info const* object::type() const {
return
m_type
;
}
void
const
*
object
::
value
()
const
{
const
void
*
object
::
value
()
const
{
return
m_value
;
}
...
...
src/object_array.cpp
View file @
4f3e13d6
...
...
@@ -55,7 +55,7 @@ abstract_tuple* object_array::copy() const {
return
new
object_array
(
*
this
);
}
void
const
*
object_array
::
at
(
size_t
pos
)
const
{
const
void
*
object_array
::
at
(
size_t
pos
)
const
{
return
m_elements
[
pos
].
value
();
}
...
...
src/uniform_type_info.cpp
View file @
4f3e13d6
...
...
@@ -145,6 +145,14 @@ void deserialize_nullptr(deserializer* source) {
class
void_type_tinfo
:
public
uniform_type_info
{
public:
void_type_tinfo
()
:
uniform_type_info
(
to_uniform_name
(
typeid
(
void_type
)))
{}
bool
equals
(
const
std
::
type_info
&
tinfo
)
const
{
return
typeid
(
void_type
)
==
tinfo
;
}
protected:
void
serialize
(
const
void
*
,
serializer
*
sink
)
const
{
...
...
@@ -164,19 +172,19 @@ class void_type_tinfo : public uniform_type_info {
}
void
*
new_instance
(
const
void
*
)
const
{
return
new
void_type
;
// const_cast cannot cause any harm, because void_type is immutable
return
const_cast
<
void
*>
(
static_cast
<
const
void
*>
(
&
m_value
));
}
void
delete_instance
(
void
*
instance
)
const
{
delete
reinterpret_cast
<
void_type
*>
(
instance
);
CPPA_REQUIRE
(
instance
==
&
m_value
);
// keep compiler happy (suppress unused argument warning)
static_cast
<
void
>
(
instance
);
}
private:
public:
bool
equals
(
const
std
::
type_info
&
tinfo
)
const
{
return
typeid
(
void_type
)
==
tinfo
;
}
void_type
m_value
;
};
...
...
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