У меня есть класс Thing
без конструктора по умолчанию.
Теперь мы определяем другой класс, который теперь должен сразу инициализировать элементы массива, так как без конструктора по умолчанию невозможно выполнить позднее присваивание. Итак, у нас есть:
class TwoThings
{
public:
Thing things[2];
TwoThings() : things({Thing("thing 1"),Thing("thing 2")})
{
}
}
Это правильный путь?
GCC компилирует его нормально, а Clang нет, заявляя, что следует использовать «список инициализаторов». Я попробовал несколько альтернативных способов, таких как двойные фигурные скобки {{ ... }}
и тому подобное, но не смог получить эквивалент компиляции для Clang.
Как инициализировать массивы без конструктора по умолчанию в Clang?