EntityProperties is not list/aggregate initializable
EntityProperties
has a user-defined defaulted virtual destructor despite being a simple data structure (no other methods).
struct EntityProperties {
virtual ~EntityProperties() = default;
// ...
};
This makes it and all classes that inherit from it (PedestrianProperties, StaticObjectProperties, VehicleProperties) non-aggregate types, meaning the only permitted constructors are user-defined and default constructors, and none of them have user-defined constructors.
In their current state, these classes produce unnecessary boilerplate code and twice as many assignments as needed. The virtual destructor should be removed, as it serves no purpose.
Edited by Noah Schick