Skip to content

Commit 5780ba6

Browse files
Prefer C++ casts over C casts (#74)
1 parent d1afaf3 commit 5780ba6

File tree

2 files changed

+27
-28
lines changed

2 files changed

+27
-28
lines changed

src/signalrclient/json_hub_protocol.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace signalr
2121
case message_type::invocation:
2222
{
2323
auto invocation = static_cast<invocation_message const*>(hub_message);
24-
object["type"] = (int)invocation->message_type;
24+
object["type"] = static_cast<int>(invocation->message_type);
2525
if (!invocation->invocation_id.empty())
2626
{
2727
object["invocationId"] = invocation->invocation_id;
@@ -35,7 +35,7 @@ namespace signalr
3535
case message_type::completion:
3636
{
3737
auto completion = static_cast<completion_message const*>(hub_message);
38-
object["type"] = (int)completion->message_type;
38+
object["type"] = static_cast<int>(completion->message_type);
3939
object["invocationId"] = completion->invocation_id;
4040
if (!completion->error.empty())
4141
{
@@ -50,7 +50,7 @@ namespace signalr
5050
case message_type::ping:
5151
{
5252
auto ping = static_cast<ping_message const*>(hub_message);
53-
object["type"] = (int)ping->message_type;
53+
object["type"] = static_cast<int>(ping->message_type);
5454
break;
5555
}
5656
// TODO: other message types
@@ -112,7 +112,7 @@ namespace signalr
112112
#pragma warning (push)
113113
// not all cases handled (we have a default so it's fine)
114114
#pragma warning (disable: 4061)
115-
switch ((message_type)found->second.as_double())
115+
switch (static_cast<message_type>(static_cast<int>(found->second.as_double())))
116116
{
117117
case message_type::invocation:
118118
{
@@ -126,7 +126,6 @@ namespace signalr
126126
throw signalr_exception("Expected 'target' to be of type 'string'");
127127
}
128128

129-
130129
found = obj.find("arguments");
131130
if (found == obj.end())
132131
{

src/signalrclient/messagepack_hub_protocol.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ namespace signalr
119119
if (value <= (double)UINT64_MAX)
120120
{
121121
// Fits within uint64_t
122-
packer.pack_uint64((uint64_t)intPart);
122+
packer.pack_uint64(static_cast<uint64_t>(intPart));
123123
return;
124124
}
125125
else
@@ -136,14 +136,14 @@ namespace signalr
136136
case signalr::value_type::string:
137137
{
138138
auto length = v.as_string().length();
139-
packer.pack_str((uint32_t)length);
140-
packer.pack_str_body(v.as_string().data(), (uint32_t)length);
139+
packer.pack_str(static_cast<uint32_t>(length));
140+
packer.pack_str_body(v.as_string().data(), static_cast<uint32_t>(length));
141141
return;
142142
}
143143
case signalr::value_type::array:
144144
{
145145
const auto& array = v.as_array();
146-
packer.pack_array((uint32_t)array.size());
146+
packer.pack_array(static_cast<uint32_t>(array.size()));
147147
for (auto& val : array)
148148
{
149149
pack_messagepack(val, packer);
@@ -153,20 +153,20 @@ namespace signalr
153153
case signalr::value_type::map:
154154
{
155155
const auto& obj = v.as_map();
156-
packer.pack_map((uint32_t)obj.size());
156+
packer.pack_map(static_cast<uint32_t>(obj.size()));
157157
for (auto& val : obj)
158158
{
159-
packer.pack_str((uint32_t)val.first.size());
160-
packer.pack_str_body(val.first.data(), (uint32_t)val.first.size());
159+
packer.pack_str(static_cast<uint32_t>(val.first.size()));
160+
packer.pack_str_body(val.first.data(), static_cast<uint32_t>(val.first.size()));
161161
pack_messagepack(val.second, packer);
162162
}
163163
return;
164164
}
165165
case signalr::value_type::binary:
166166
{
167167
const auto& bin = v.as_binary();
168-
packer.pack_bin((uint32_t)bin.size());
169-
packer.pack_bin_body((char*)bin.data(), (uint32_t)bin.size());
168+
packer.pack_bin(static_cast<uint32_t>(bin.size()));
169+
packer.pack_bin_body(reinterpret_cast<const char*>(bin.data()), static_cast<uint32_t>(bin.size()));
170170
return;
171171
}
172172
case signalr::value_type::null:
@@ -193,7 +193,7 @@ namespace signalr
193193

194194
packer.pack_array(6);
195195

196-
packer.pack_int((int)message_type::invocation);
196+
packer.pack_int(static_cast<int>(message_type::invocation));
197197
// Headers
198198
packer.pack_map(0);
199199

@@ -203,14 +203,14 @@ namespace signalr
203203
}
204204
else
205205
{
206-
packer.pack_str((uint32_t)invocation->invocation_id.length());
207-
packer.pack_str_body(invocation->invocation_id.data(), (uint32_t)invocation->invocation_id.length());
206+
packer.pack_str(static_cast<uint32_t>(invocation->invocation_id.length()));
207+
packer.pack_str_body(invocation->invocation_id.data(), static_cast<uint32_t>(invocation->invocation_id.length()));
208208
}
209209

210-
packer.pack_str((uint32_t)invocation->target.length());
211-
packer.pack_str_body(invocation->target.data(), (uint32_t)invocation->target.length());
210+
packer.pack_str(static_cast<uint32_t>(invocation->target.length()));
211+
packer.pack_str_body(invocation->target.data(), static_cast<uint32_t>(invocation->target.length()));
212212

213-
packer.pack_array((uint32_t)invocation->arguments.size());
213+
packer.pack_array(static_cast<uint32_t>(invocation->arguments.size()));
214214
for (auto& val : invocation->arguments)
215215
{
216216
pack_messagepack(val, packer);
@@ -228,21 +228,21 @@ namespace signalr
228228
size_t result_kind = completion->error.empty() ? (completion->has_result ? 3U : 2U) : 1U;
229229
packer.pack_array(4U + (result_kind != 2U ? 1U : 0U));
230230

231-
packer.pack_int((int)message_type::completion);
231+
packer.pack_int(static_cast<int>(message_type::completion));
232232

233233
// Headers
234234
packer.pack_map(0);
235235

236-
packer.pack_str((uint32_t)completion->invocation_id.length());
237-
packer.pack_str_body(completion->invocation_id.data(), (uint32_t)completion->invocation_id.length());
236+
packer.pack_str(static_cast<uint32_t>(completion->invocation_id.length()));
237+
packer.pack_str_body(completion->invocation_id.data(), static_cast<uint32_t>(completion->invocation_id.length()));
238238

239-
packer.pack_int((int)result_kind);
239+
packer.pack_int(static_cast<int>(result_kind));
240240
switch (result_kind)
241241
{
242242
// error result
243243
case 1:
244-
packer.pack_str((uint32_t)completion->error.length());
245-
packer.pack_str_body(completion->error.data(), (uint32_t)completion->error.length());
244+
packer.pack_str(static_cast<uint32_t>(completion->error.length()));
245+
packer.pack_str_body(completion->error.data(), static_cast<uint32_t>(completion->error.length()));
246246
break;
247247
// non-void result
248248
case 3:
@@ -258,7 +258,7 @@ namespace signalr
258258
// auto ping = static_cast<ping_message const*>(hub_message);
259259

260260
packer.pack_array(1);
261-
packer.pack_int((int)message_type::ping);
261+
packer.pack_int(static_cast<int>(message_type::ping));
262262

263263
break;
264264
}
@@ -321,7 +321,7 @@ namespace signalr
321321

322322
#pragma warning (push)
323323
#pragma warning (disable: 4061)
324-
switch ((message_type)type)
324+
switch (static_cast<message_type>(type))
325325
{
326326
case message_type::invocation:
327327
{

0 commit comments

Comments
 (0)