gpt4 book ai didi

c++ - float 或 double 类型取决于指针的大小

转载 作者:行者123 更新时间:2023-12-02 20:56:20 25 4
gpt4 key购买 nike

我想声明一个结构,其中我的类型之一是 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/

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