gpt4 book ai didi

c++ - C++ 中的编译时类型替换

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

假设我有一个使用内置类型的程序,例如 float我希望能够为我的编译器提供一个命令行参数来更改所有 float声明为 fixed_point<8,8>反而。
假设它们是完全相同的接口(interface)(例如,它们在赋值/添加/转换/等方面可以被视为相同),是否有办法通过编译器或构建系统(cmake/scons/等)进行交换指定特定标志时编译期间的类型?例如,这将为确定性带来一些好处。

最佳答案

您可以使用别名类型声明变量,该别名类型是根据预处理器定义有条件地定义的,如下所示:

#ifdef LARGEFLOATS
using MYFLOAT = long double;
#else
using MYFLOAT = double;
#endif
然后您可以使用 -D用于设置预处理器定义的编译器标志,例如 -DLARGEFLOATS (对于 MSVC,语法是 /D )。需要注意所有翻译单元都看到相同的预处理器定义。在我的示例中,这可能会导致转换范围缩小。

关于c++ - C++ 中的编译时类型替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63854923/

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