Аннотации исключения исключения C ++ для виртуальных функций

Я видел следующий фрагмент кода:

class Foo
{
public:
        void virtual func() throw (int, float) = 0;
};

class Bar : public Foo
{
public:
        void virtual func() throw(short);      // line 1: compile error "
                                                                      // looser throw specifier"
        void virtual func() throw();                // line 2: can compile
        void virtual func() throw(float, int); // line 3: can compile
        void virtual func() throw(float);        // line 4: can compile
        void virtual func() throw(int);           // line 5: can compile

};

int main(void)
{
        return 1;
}

Q1> Что означает

void virtual func() throw (int, float) = 0;

Q2> почему строка1 не может пройти компилятор?

Спасибо

5
задан Ben Voigt 21 September 2010 в 19:03
поделиться