Почему явный конструктор по умолчанию предотвращает построение этого?C++

Программы на C++. Форум разработчиков
Anonymous
Почему явный конструктор по умолчанию предотвращает построение этого?

Сообщение Anonymous »

Код: Выделить всё

struct ExplicitDefaultConstructor
{
explicit ExplicitDefaultConstructor() {}
};

struct Material
{
ExplicitDefaultConstructor a;
int b;
};

int main() {
Material{.b = 2 };
}
Законно только инициализировать член B , а не участник. Но тот факт, что это явное предотвращает это. Это потому, что обозначенные инициализаторы для участников, которые не упомянуты, построены компилятором неявно с {} < /code>? < /P>
Ошибка Clang: < /p>

Ошибка: выбранная конструкция с ошибкой в ​​«Br />
note». Инициализатор


Подробнее здесь: https://stackoverflow.com/questions/796 ... onstructed

Вернуться в «C++»