Оператор ++ () 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 не должен выдавать исключение при ошибке.

Я думаю, что вы хотите noexcept.

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]