gpt4 book ai didi

c++ - 伪造真↔假

转载 作者:行者123 更新时间:2023-12-01 15:10:27 25 4
gpt4 key购买 nike

这个问题没有实际用途!我之所以问这个只是因为我很好奇!
在C++中,有一种方法可以通过在某处编写#define true false来将true伪造为false,然后在代码中到处的true都将被视为false。但是我正在寻找一种方法来同时伪造truefalsefalsetrue:

#define true false
#define false true
这不起作用,并且尝试“保存”原始 true也无效:
#define temptrue true
#define true false
#define false temptrue
你知道有什么办法吗?

最佳答案

也许像这样?

#define false static_cast<bool>(1)
#define true static_cast<bool>(0)

关于未定义的行为:
那些说未定义的人可能指的是这个问题的答案: Is it legal to redefine a C++ keyword?
但是,如果您不使用标准C++库,则引用的限制将不适用(对Bathsheba和Martin York表示敬意)。

16.5.4.1 [constraints.overview]
Subclause 16.5.4 describes restrictions on C++ programs that use the facilities of the C++ standard library.
...
16.5.4.3.2 [macro.names] ...
A translation unit shall not #define or #undef names lexically identical to keywords, ...
C++ 2020 draft

关于c++ - 伪造真↔假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62890411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com