diff --git a/Src/Common/Abstract.cpp b/Src/Common/Abstract.cpp index 821a876..3123395 100644 --- a/Src/Common/Abstract.cpp +++ b/Src/Common/Abstract.cpp @@ -1010,7 +1010,7 @@ bool PreparedNodeState::read_uint16(std::basic_istream& stream, uint16_ } bool PreparedNodeState::load(const std::u8string& data) noexcept { -std::basic_istringstream stream(data); + std::basic_istringstream stream(data); char8_t byte; uint16_t size, v16; char8_t buffer[32]; @@ -1065,7 +1065,7 @@ std::basic_istringstream stream(data); if (!(stream >> byte)) return false; uint8_t op = byte; if (!read_uint16(stream, v16)) return false; - node.v = Node::Unary{ op, v16 }; + node.v = Node::Unary{Op(op), v16}; break; } case 3: { // Node::Binary @@ -1075,7 +1075,7 @@ std::basic_istringstream stream(data); uint16_t lhs = v16; if (!read_uint16(stream, v16)) return false; uint16_t rhs = v16; - node.v = Node::Binary{ op, lhs, rhs }; + node.v = Node::Binary{Op(op), lhs, rhs}; break; } default: @@ -1092,7 +1092,7 @@ std::basic_istringstream stream(data); uint16_t nodeId = v16; if (!read_uint16(stream, size)) return false; - std::vector>> variants; + boost::container::small_vector>, 1> variants; variants.reserve(size); for (uint16_t j = 0; j < size; ++j) { @@ -1130,7 +1130,7 @@ std::basic_istringstream stream(data); float f_val; std::memcpy(&f_val, &val_bits, 4); - model.Transforms.push_back({ op, f_val }); + model.Transforms.emplace_back(Transformation::EnumTransform(op), f_val); } variants.emplace_back(weight, std::move(model)); } else if (model_tag == 1) { // VectorModel @@ -1162,7 +1162,7 @@ std::basic_istringstream stream(data); float f_val; std::memcpy(&f_val, &val_bits, 4); - subModel.Transforms.push_back({ op, f_val }); + subModel.Transforms.emplace_back(Transformation::EnumTransform(op), f_val); } vecModel.Models.push_back(std::move(subModel)); } @@ -1184,14 +1184,15 @@ std::basic_istringstream stream(data); float f_val; std::memcpy(&f_val, &val_bits, 4); - vecModel.Transforms.push_back({ op, f_val }); + vecModel.Transforms.emplace_back(Transformation::EnumTransform(op), f_val); } variants.emplace_back(weight, std::move(vecModel)); } else { return false; // неизвестный тип модели } } - Routes[nodeId] = std::move(variants); + + Routes.emplace_back(nodeId, std::move(variants)); } return true;