Выбросить исключение из списка инициализатора конструктораC++

Программы на C++. Форум разработчиков
Anonymous
Выбросить исключение из списка инициализатора конструктора

Сообщение Anonymous »

Я хочу выбросить исключение из класса конструктора, когда заданный параметр выходит из диапазона. Это легко сделано изнутри тела конструктора: < /p>

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

class A {
int x;
enum { MAX = 10 };

public:
A(int x_)
{
if(x_ >MAX) throw(1);
x=x_;
}
};
< /code>
Но как это сделать при использовании списка инициализатора? < /p>
class A {
int x;
enum { MAX = 10 };

public:
A(int x_) : x(x_)
{}
};
< /code>
Я очень удивлен, что GCC, MSC и Clang принимают это: < /p>
class A {
int x;
enum { MAX = 10 };

public:
A(int x_) : x(x_ 

Подробнее здесь: [url]https://stackoverflow.com/questions/79394220/throwing-exception-from-constructor-initialiser-list[/url]

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