Законность интервала * выстраивает = новый интервал [размер] ();

"После применения сброса CSS я хочу возвратиться к 'нормальному' поведению для элементов HTML..."

при применении сброса необходимо было бы тогда добавить правила для того, чему Вы верите, чтобы быть нормальное поведение . С тех пор нормальное поведение варьируется от браузера до браузера, этим вопросом является что-то вроде нелогичного заключения. Мне нравится ответ @da5id - используют один из многого доступного сброса и настраивают его для удовлетворения потребностям.

5
задан Lightness Races with Monica 30 May 2011 в 21:30
поделиться

3 ответа

Это часть стандарта C ++; если он был недопустимым в g ++, значит, g ++ не соответствовал требованиям. Из стандарта C ++ (ISO / IEC 14882: 2003) важны несколько разделов:

5.3.4 / 15 относительно нового выражения говорит:

Если новый инициализатор имеет форму (), элемент является инициализированное значение

8.5 / 5 относительно инициализаторов говорит:

Инициализировать объект типа T означает:

- если T является типом класса (пункт 9) с конструктором, объявленным пользователем (12.1) , то вызывается конструктор по умолчанию для T (и инициализация плохо сформирована, если T не имеет доступного конструктора по умолчанию);

- если T является типом класса без объединения без конструктора, объявленного пользователем, то каждый не- статический член данных и компонент базового класса T инициализируется значением;

- если T является типом массива, то каждый элемент инициализируется значением;

6
ответ дан 14 December 2019 в 08:53
поделиться

Инициализация с помощью () (включая ваш пример) всегда была частью стандартного C ++, начиная с C ++ 98. Хотя в более новые версии стандарта были внесены некоторые изменения, они не применимы к вашему примеру. Известно, что

компиляторы GCC неправильно обрабатывали инициализаторы () в версиях из семейства 2.xx. Компилятор MSVC ++, как известно, неправильно обрабатывает инициализаторы () в VC6. Более новые версии MSVC ++ обрабатывают инициализаторы () в соответствии со спецификацией C ++ 98.

1
ответ дан 14 December 2019 в 08:53
поделиться

Это из "Рабочего проекта, стандарта для программирования" Язык C ++ »от 09.11.2009:

8.5 Инициализаторы
...
7 Инициализировать объект типа T по значению означает:

  • если T является (возможно, cv-квалифицированным) типом класса (раздел 9) с конструктором, предоставленным пользователем (12.1), то вызывается конструктор по умолчанию для T (и инициализация неправильно сформирована, если T не имеет доступного значения по умолчанию конструктор);
  • если T является (возможно, cv-квалифицированным) типом класса без объединения без конструктора, предоставленного пользователем, то объект инициализируется нулем, и, если неявно объявленный конструктор по умолчанию для T нетривиален, этот конструктор является называется.
  • если T является типом массива, то каждый элемент инициализируется значением;
  • в противном случае объект инициализируется нулем.

...

0
ответ дан 14 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: