Я пытаюсь инициализировать массив объектов. Это похоже на ошибку в Keil, используя компилятор arm cc, используя флаг --cpp11.
Ниже приведен мой класс Wheel
, который будет использоваться позже в Vehicle. class.
class Wheel
{
public:
Wheel(const uint8_t diameter);
private:
uint8_t m_diameter;
};
Класс Vehicle
использует массив Wheel, и они инициализируются в конструкторе. В идеале я хотел бы инициализировать его так:
class Vehicle
{
public:
Vehicle();
private:
Wheel wheels[3];
};
//in Wheel.cpp
// Constructor
Vehicle::Vehicle()
: wheels{Wheel(3),Wheel(4),Wheel(5)}
{}
Другой вариант - инициализировать все в теле конструктора, например:
Vehicle::Vehicle(){
wheel[0] = Wheel(3);
wheel[1] = Wheel(4);
wheel[2] = Wheel(5);}
Компилятор Документация упоминает:
ARM Compiler поддерживает списки инициализаторов и унифицированную инициализацию, но стандартная библиотека не обеспечивает реализацию std::initializer_list
. С предоставленной пользователем реализацией std::initializer_list
можно использовать списки инициализаторов и равномерную инициализацию.
Как определить список инициализаторов для моего сценария использования?