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

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

Сообщение Anonymous »

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

struct ExplicitDefaultConstructor
{
explicit ExplicitDefaultConstructor() {}
};

struct Material
{
ExplicitDefaultConstructor a;
int b;
};

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

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


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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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