Оператор ++() nothrow не компилируется

Почему я не могу сделать оператор ++() nothrow?

Это может быть одним из немногих преимуществ использования оператора postfix ++ (перед оператором prefix ++).

Например, этот код не компилируется

class Number
{
public:
    Number& operator++ ()     // ++ prefix
    {
        ++m_c;
        return *this;
    }

    Number operator++ (int) nothrow  // postfix ++
    {
        Number result(*this);   // make a copy for result
        ++(*this);              // Now use the prefix version to do the work
        return result;          // return the copy (the old) value.
    }

    int m_c;
};

Заметьте, что постфиксный оператор также можно сделать потокобезопасным.

1 ответ

Решение

nothrow константа, используемая для передачи оператору new для указания того, что new не должен выдавать исключение при ошибке.

Я думаю, что вы хотите, не исключение.

Другие вопросы по тегам