Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Нарушение спецификации исключений. Где?


Автор: np9mi7 30.5.2005, 00:24
Добрый день.

Написал безобидный код:
Код

class CTest
{
public:
    CTest()
    {
    }
    void f() throw(int);
};
void CTest::f() throw(int)
{
}

а компилятор (Microsoft Visual C++ .NET 69586-335-0000007-18652) мне:
Код

Compiling...
template_exc.cpp
d:\Proga\examples\template_exc\template_exc\template_exc.cpp(11) : warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
d:\Proga\examples\template_exc\template_exc\template_exc.cpp(13) : warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
Linking...


Так где это я делаю, где нарушаю спецификацию исключений??? smile
Или быть может я чего не понимаю?

Подскажите пожалуйста, а то у меня от этих warning - ов голова расскалывается!

Заранее благодарен за помощь

ps конечно можно просто отключить:
Код

#pragma warning(disable:4290)

, но так сказать охото знать в чем суть!

Автор: chipset 30.5.2005, 00:31
Разве MSVC вообще поддерживает такую фичу как спецификация исключений для функций?

Автор: np9mi7 30.5.2005, 00:43
Цитата
Разве MSVC вообще поддерживает такую фичу как спецификация исключений для функций?
, а что может не поддерживать?

Это же стандартный c++...
Так что может не поддерживать?

ps чето и в VC 6.0 не компилируется.... smile без предупреждений

Автор: chipset 30.5.2005, 00:49
C++ то стандартный а вот компилер Микросовтовский ;)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/vclrf154FunctionExceptionSpecifiers.asp
Цитата
Function exception specifiers other than throw() are parsed but not used. For example:

void f() throw(int); // parsed but not used
void g() throw();    // parsed and used

Автор: np9mi7 30.5.2005, 01:05
chipset, спасибо.

А интересно почему не поддерживается? Это же удобно и наглядно...
Наверное на это есть скрытые причины, быть может особенность реализации...

Автор: Fantasist 1.6.2005, 06:24
Вот ё! А я то думал, что в новой версии студии они это исправили. (то, что в VC6 такая спецификация игнорируется я знал довно).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)