作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想声明一个结构,其中我的类型之一是 float 或 double,具体取决于指针大小。
#if size of pointer is 4
# define Real float
#else
# define Real double
#endif
struct mydata {
//...
Real speed;
//...
};
#undefine Real
不使用宏?
最佳答案
您可以使用std::conditional
(或 conditional_t
)根据编译时条件选择类型:
#include <type_traits>
using Real = std::conditional_t<sizeof(void*) == 4, float, double>;
如果您使用 C++11 但不使用 C++14,则需要:
using Real = std::conditional<sizeof(void*) == 4, float, double>::type;
关于c++ - float 或 double 类型取决于指针的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59501631/
我是一名优秀的程序员,十分优秀!