c++ - prefer switch over long-ish if/else (be nice to compiler)
This commit is contained in:
@@ -1,25 +1,28 @@
|
||||
#include <llmr/style/value.hpp>
|
||||
|
||||
llmr::Value llmr::parseValue(pbf data) {
|
||||
while (data.next()) {
|
||||
if (data.tag == 1) { // string_value
|
||||
while (data.next())
|
||||
{
|
||||
switch (data.tag)
|
||||
{
|
||||
case 1: // string_value
|
||||
return data.string();
|
||||
} else if (data.tag == 2) { // float_value
|
||||
case 2: // float_value
|
||||
return data.float32();
|
||||
} else if (data.tag == 3) { // double_value
|
||||
case 3: // double_value
|
||||
return data.float64();
|
||||
} else if (data.tag == 4) { // int_value
|
||||
case 4: // int_value
|
||||
return data.varint<int64_t>();
|
||||
} else if (data.tag == 5) { // uint_value
|
||||
case 5: // uint_value
|
||||
return data.varint<uint64_t>();
|
||||
} else if (data.tag == 6) { // sint_value
|
||||
case 6: // sint_value
|
||||
return data.svarint<int64_t>();
|
||||
} else if (data.tag == 7) { // bool_value
|
||||
case 7: // bool_value
|
||||
return data.boolean();
|
||||
} else {
|
||||
default:
|
||||
data.skip();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user