gpt4 book ai didi

sin 到 std::sin 的 C++ 别名——需要草率的快速修复

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:28 28 4
gpt4 key购买 nike

我有一个客户试图在一个过时的编译器上编译,该编译器似乎没有来自 c++11 的 std::sin 和 std::cos。 (而且他们不能升级)我正在寻找某种快速修复方法来插入标题的顶部以使 std::sin 指向 sin 等。我一直在尝试类似的事情

#ifndef std::sin
something something
namespace std{
point sin to outside sin
point cos to outside cos
};
#endif

但是我没有运气

有什么建议吗?谢谢

最佳答案

原则上应该可以用

#include <math.h>
namespace std {
using ::sin;
using ::cos;
}

然而,其中一些功能是以一种有趣的方式实现的,您可能需要使用类似这样的方式:

#include <math.h>
namespace std {
inline float sin(float f) { return ::sinf(f); }
inline double sin(double d) { return ::sin(d); }
inline long double sin(long double ld) { return ::sinl(ld); }
inline float cos(float f) { return ::cosf(f); }
inline double cos(double d) { return ::cos(d); }
inline long double cos(long double ld) { return ::cosl(ld); }
}

请注意,这两种方法都不可移植,它们可能有效也可能无效。另请注意,您无法测试正在定义的 std::sin:您需要设置合适的宏名称。

关于sin 到 std::sin 的 C++ 别名——需要草率的快速修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19307589/

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