gpt4 book ai didi

c++ - 将参数隐式转换为 bool

转载 作者:行者123 更新时间:2023-11-27 23:44:37 24 4
gpt4 key购买 nike

前提:由于宏的潜在问题,我正在尝试创建一个未使用宏实现的定义范围。这是我的初步尝试

//version for if not defined
bool Defined()
{
return false
}

//version for if defined
bool Defined(bool anything)
{
return true;
}

和一个示例用例

if(Defined(_DEBUG))
{
Stuff...
}

哪个会取代

#ifdef _DEBUG
Stuff...
#endif

#define Defined()         false
#define Defined(Anything) true

好处:
语法更清晰,范围更广,

此代码不是条件性的,因此编译器将能够轻松优化代码段。

问题
这个过程有几个问题,第一个是这篇文章的原因。

问题:
您不能传入任何不能隐式转换为 bool 值的内容。有没有办法将任何对象、数字、指针等隐式转换为 bool 值?我不相信有,但我想先确定一下,然后再继续。

最佳答案

您可以使用通用模板:

template<class T>
bool Defined(T &&) { return true; }

关于c++ - 将参数隐式转换为 bool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51619501/

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