如何用 clang 编译特殊的数学函数?
How to compile special mathematical functions with clang?
可以从 tr1
调用 sph_legendre
并用 gcc-5
或 gcc-6
编译它
#include<tr1/cmath>
int main()
{
std::tr1::sph_legendre(1,1,0);
return 0;
}
不幸的是,如果我尝试使用 clang++
将其编译为:
clang++ -stdlib=libstdc++ legendre.cpp -o legendre
我明白了
error: no member named 'sph_legendre' in namespace 'std::tr1'
C++PP(第 4 版)第 40.3 节指出:
"There is a separate ISO standard for special mathematical functions [C++Math,2010]. An implementation may add these functions to cmath"
如何用clang++
编译这些特殊函数?
正如 Richard 已经提到的,clang 目前不支持 std::sph_legendre。
一个可能的解决方法是使用 boost 库 (http://www.boost.org)
并包括 header:boost/math/tr1.hpp
可以从 tr1
调用 sph_legendre
并用 gcc-5
或 gcc-6
#include<tr1/cmath>
int main()
{
std::tr1::sph_legendre(1,1,0);
return 0;
}
不幸的是,如果我尝试使用 clang++
将其编译为:
clang++ -stdlib=libstdc++ legendre.cpp -o legendre
我明白了
error: no member named 'sph_legendre' in namespace 'std::tr1'
C++PP(第 4 版)第 40.3 节指出:
"There is a separate ISO standard for special mathematical functions [C++Math,2010]. An implementation may add these functions to cmath"
如何用clang++
编译这些特殊函数?
正如 Richard 已经提到的,clang 目前不支持 std::sph_legendre。
一个可能的解决方法是使用 boost 库 (http://www.boost.org) 并包括 header:boost/math/tr1.hpp