使用boost数学的编译问题

compilation problems using boost math

本文关键字:编译 问题 boost 使用      更新时间:2023-10-16

我曾经从http://www.boostpro.com/download/构建boost,并希望使用一些数学函数。类似这样的东西:

Plm[l][m] = boost::math::legendre_p(l,m,cosine);

当然,我包括:

#include <boost/math/special_functions/spherical_harmonic.hpp>

并将boost的路径添加到我的附加(boost\boost(include目录,将lib的路径(boost\lib(添加到附加链接器目录(VS2008(。我遇到了一些编译错误,我似乎无法找出原因:

错误6错误C2955:"boost::mpl::if_":类模板的使用需要模板参数列表D:\work\polpoles\Project\boost\boost\math\policies\policy.hpp 724

错误2错误C2825:"Policy":后面跟有"::"D:\work\polpoles\Project\boost\boost\math\policies\Policy.hpp 724 时,必须是类或命名空间

错误4错误C2146:语法错误:在标识符"promote_double_type"D:\work\polpoles\Project\boost\boost\math\policies\policy.hpp 724 之前缺少",">

错误5错误C2065:"promote_double_type":未声明的标识符D:\work\polpoles\Project\boost\boost\math\policies\policy.hpp 724

错误3错误C2039:"promote_double_type":不是"全局命名空间"D:\work\polpoles\Project\boost\boost\math\policies\policy.hpp 724 的成员

任何建议都将不胜感激!

好吧,这只是一个。在我的代码中,l和m是无符号的。但是legendre_p(int,int,T(只有一个重载。因此,我的函数调用被映射到legendre_p(int,T,&policy((或者我认为是这样(。