'powf'不是'std'的成员

Zig*_*ggy 6 c++ std

嗨,我有一个库,我必须为XCode编译.包含<cmath>.

有人可以向我解释出现了什么问题吗?

谢谢.

pax*_*blo 12

直到C++ 11,powf才是微软主义.它根本没有出现在ISO标准中,因此不太可能出现在XCode中,除非它们要适应微软奇怪的做法,我认为不太可能.

pow另一方面,由于它是在C库的早期迭代中并入C++ pre-11的事实,因此已经成为C++库的一部分.改用它.

从C++ 11开始,powf 它确实出现在ISO标准中并且是std命名空间的一部分.

然而,存在不符合的实现,例如,gcc libstdc ++.本摘录中的更多资源来自cppreference talk page中的讨论:

上面发布的答案在C++ 11之前是正确的,因为C++ 98/03尚未引用C99库.根据当前标准,powfstd包含的名称空间中声明(在C++ 17中明确提到,在C++ 11/14中隐式提到,另请参阅N4659,N4140N3337).因为std::powf,当libc ++是clang时,gcc libstdc ++不兼容.--Fruderica(talk)03:49,2019年2月19日(太平洋标准时间)

另见,更新,SO回答:https: //stackoverflow.com/a/54735351 --Cubbi(talk)08:10,2019年2月19日(太平洋标准时间)