Я хотел бы применить __declspec(nothrow)
к некоторым из моих функций-членов, которые возвращают ссылки на объекты. Например, я хотел бы добавить его в эту функцию (в MyClass.h):
CMyClass& operator= ( IN UInt32 nValue )
{
return ( SetValue ( nValue ) );
};
Документация VC ++ гласит , что мне нужно добавить ее после типа возврата функции, например:
return-type __declspec(nothrow) [call-convention] function-name ([argument-list])
Если я последую этому, большинство моих функций работают нормально с __declspec(nothrow)
. Однако, когда я делаю это для вышеуказанной функции-члена (или любой другой, которая возвращает CMyClass&
), я получаю ошибки компиляции:
error C2059: syntax error : '__declspec(nothrow)'
Я могу поставить его перед возвращаемым типом, и тогда он будет скомпилирован, но в документации также сказано, что если __declspec () находится в неправильном месте, компилятор может игнорировать его без предупреждения или ошибки.
Как правильно использовать __declspec(nothrow)
?