我最近得到了一個已被其他人實現的DLL。我必須在我的應用程序中使用它。在他們的類的頭文件,他們有函數聲明如何擺脫「忽略C++異常規範」的警告
void func1() throw (CCustomException);
現在,當我編譯我得到警告,除了指示功能忽略
C++異常規範不 _declspec( nothrow)
我看了MSDN - Documentation,但是看不清楚。另外,我不想僅僅因爲它出現而禁用警告。我想知道我在做什麼,而不是禁用它。
我想我的功能,說myfunc()
訪問該func1()
從DLL不具有異常規範列表。因此,我嘗試在我的功能也有相應的例外規範列表,因爲
void myfunc1() throw (CCustomException);
但我仍然收到警告。這個警告是什麼,以及如何擺脫它?我在Windows XP中使用Qt 4.5。
它聽起來像它正在編譯爲C++ 0x,其中像這樣的異常規範已棄用,而不是C++ 03。可能有編譯器選項指定你想要'03,或者只是爲了重新啓用異常規範,如果你想要其他'0x功能。 – 2010-06-29 13:39:40
@Alexandre C,雅我同意禁用和所有,但警告是關於什麼?它爲什麼會發生,背後的基本原理是什麼?我只是想知道這些.. – liaK 2010-06-30 04:10:11
@liaK:查看Alexandre發佈的鏈接。 – Philipp 2010-06-30 05:52:26