作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
前提:由于宏的潜在问题,我正在尝试创建一个未使用宏实现的定义范围。这是我的初步尝试
//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/
我是一名优秀的程序员,十分优秀!