可以从sph_legendre
致电tr1
并使用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
我得到了
错误:命名空间'std :: tr1'
中没有名为'sph_legendre'的成员
在第40.3节中,C ++ PP(第4版)声明:
“特殊数学函数有一个单独的ISO标准[C ++ Math,2010]。实现可以将这些函数添加到cmath”
如何使用clang++
编译这些特殊功能?
答案 0 :(得分:4)
正如理查德已经提到的那样,clang目前不支持std :: sph_legendre。
可能的解决方法是使用boost库(http://www.boost.org) 并包含标题: boost / math / tr1.hpp