是否有可能從C++c + +刪除的標準功能
//Undefine some function from the standard like classes
class someclass
{
someclass(){
//Whatever
}
};
刪除的標準功能,然後得到錯誤
「類未聲明的標識符」
是否有可能從C++c + +刪除的標準功能
//Undefine some function from the standard like classes
class someclass
{
someclass(){
//Whatever
}
};
刪除的標準功能,然後得到錯誤
「類未聲明的標識符」
不,我建議,但你可以使用預處理器宏來取消你想要的任何東西。
如果你編譯下面的程序,你會得到很多錯誤。
#define vector
#include <vector>
int main()
{
vector<int> a;
}
您不需要文件中的#define vector
。您可以在用於調用編譯器的命令中定義它。
注意使用上述伎倆,使你的程序受到不確定的行爲:
17.6.4.3保留名稱
...
2如果程序聲明或定義了一個nam e在保留的上下文中,除本條款明確允許外,其行爲未定義。
17.6.4.3.1宏名稱 [macro.names]
1所述的轉換單元,其包括一個標準庫的頭在任何標準庫頭不得聲明
#define
或#undef
名稱。2所述的翻譯單元不得
#define
或#undef
名稱詞法相同的關鍵字,以在表中所列[tab:identifiers.special]標識符,或在[dcl.attr]描述的attribute-tokens。
17.6.4.3.1宏名稱§2翻譯單位不得在詞義上與關鍵字相同的「#define」或「#undef」名稱... –
我在想你爲什麼要這樣做 – CinCout
讓我直截了當地說:你想刪除/禁用標準庫函數嗎?如果是這樣,爲什麼?我想不出有什麼好的理由來做到這一點。 – InternetAussie
@CInCout只是爲了好玩 – Abdision