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

ilc*_*avo -1 c++ tr1 cmath clang++

可以使用sph_legendreor调用tr1并编译它gcc-5gcc-6

#include<tr1/cmath>

int main()
{
    std::tr1::sph_legendre(1,1,0);
    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果我尝试将其编译为clang++

clang++ -stdlib=libstdc++ legendre.cpp -o legendre

我明白了

错误:命名空间“std::tr1”中没有名为“sph_legendre”的成员

在第 40.3 节中,C++PP(第 4 版)指出:

“对于特殊数学函数有一个单独的 ISO 标准 [C++Math,2010]。实现可以将这些函数添加到 cmath”

我怎样才能编译这些特殊函数clang++

Hub*_*ubi 5

正如 Richard 已经提到的,clang 目前不支持 std::sph_legendre。

一个可能的解决方法是使用 boost 库(http://www.boost.org)并包含头文件:boost/math/tr1.hpp