Using small vector.

This commit is contained in:
Pcornat 2024-03-04 17:24:17 +01:00
parent bde031f393
commit a693da20bf
Signed by: Pcornat
GPG Key ID: E0326CC678A00BDD
2 changed files with 7 additions and 9 deletions

View File

@ -45,8 +45,9 @@ namespace character {
class BillyObjects final {
public:
static constexpr std::size_t max_num_obj{ 3 };
using billyObject = std::variant<weapons, equipments, tools>;
using container = ankerl::svector<billyObject, 3>;
using container = ankerl::svector<billyObject, max_num_obj>;
static constexpr std::string_view sword{ "Sword" };
static constexpr std::string_view lance{ "Lance" };
@ -69,12 +70,9 @@ namespace character {
void pop_object(CharacterSheet &sheet) noexcept;
[[nodiscard]] const container &get_objects() const noexcept { return objects; }
// void insert_weapon(weapons weapon, CharacterSheet &sheet) noexcept;
private:
container objects;
std::plus<std::uint32_t> plus;
std::minus<std::uint32_t> minus;

View File

@ -9,8 +9,8 @@ namespace character {
using characteristic::Characteristic;
void BillyObjects::push_object(const billyObject &object, CharacterSheet &sheet) noexcept {
if (objects.size() < 3) {
objects.emplace_back(object);
if (sheet.objects.size() < 3) {
sheet.objects.emplace_back(object);
auto &local_habilete = static_cast<Characteristic &>(sheet.habilete);
auto &local_adresse = static_cast<Characteristic &>(sheet.adresse);
@ -48,9 +48,9 @@ namespace character {
}
void BillyObjects::pop_object(CharacterSheet &sheet) noexcept {
if (!objects.empty()) {
const billyObject obj = objects.back();
objects.pop_back();
if (!sheet.objects.empty()) {
const billyObject obj = sheet.objects.back();
sheet.objects.pop_back();
auto &local_habilete = static_cast<Characteristic &>(sheet.habilete);
auto &local_adresse = static_cast<Characteristic &>(sheet.adresse);