я определил-структуру, которая имеет конструктор:Почему компилятор не генерирует ошибки компиляции, если неправильный тип аргумента передается в список инициализации структуры?
struct MyStruct
{
MyStruct(const int value)
: value(value)
{
}
int value;
};
и следующие объекты:
int main()
{
MyStruct a (true);
MyStruct b {true};
}
Но я не получил ни одной ошибки компиляции, либо с MVS2015 или Xcode 7.3.1 ,
- Почему у меня нет ошибок при компиляции?
- Как заставить компилятор помочь мне обнаружить это? (Первоначально структура была написана, чтобы иметь
bool
данных, но по прошествии некоторого времени, код изменился и сталbool
int
и были введены несколько ошибок.)
Я удивлен, что второй разрешен, но я получаю то же самое (без ошибок). – wally
Существует целая поддержка сохранения ценности от 'bool' до' int', которая применяется неявно. Инициализация скобок только плохо сформирована для * сужения * конверсий. –
:(Да, я тоже, поскольку, надеюсь, компилятор мне поможет. –