>>27221
>Не уверен, что...
Не в этом суть.
Просто два разный класса -- два разных класса, и проблем с хранением данных проблем нет:
struct vel {float x; float y;};
struct pos {float x; float y;};
entity.set<vel>({5; 0;}); // теперь компонент типа vel равен {5; 0;}
entity.set<pos>({0; 0;}); // теперь компонент типа pos равен {0; 0;}
Но как быть с простыми типами, которым нельзя сделать "копию":
int month = 13;
int day = 28;
//add<typename>() -- добавить компонент ("поле" сущности) типа 'typename'.
//set<typename T>(T value) -- добавить компонент (если отсутствует) типа 'T' и установить в него значение.
entity.add<day>(); // ошибка: переменная -- не тип данных.
entity.set<int>(day); // теперь компонент типа int равен перем. day.
entity.set<int>(month); // теперь компонент типа int равен month.
Есть ли способ получше, чем прибегать к созданию
struct month {int v;}; для возможности хранить и
int day и
int month?
Впрочем, можете забить.
Я просто интересовался, можно ли сделать копию простого типа, наподобие
class myclass : float` или иным способом.