是否有可能从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