如何用clang编译特殊的数学函数?

时间:2017-03-25 14:57:25

标签: c++ clang++ tr1 cmath

可以从sph_legendre致电tr1并使用gcc-5gcc-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++编译这些特殊功能?

1 个答案:

答案 0 :(得分:4)

正如理查德已经提到的那样,clang目前不支持std :: sph_legendre。

可能的解决方法是使用boost库(http://www.boost.org) 并包含标题: boost / math / tr1.hpp