2011-04-07 83 views
2

我曾經從http://www.boostpro.com/download/安裝程序來構建boost,並想使用一些數學函數。事情是這樣的:編譯問題使用boost數學

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

當然,我包括:

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

,並添加到提高我的額外(升壓\提升)的路徑包括目錄和路徑到lib(升壓\ LIB)到其他鏈接程序目錄(VS2008)。我收到一些彙編錯誤,我似乎無法找出原因:

錯誤6錯誤C2955:'boost :: mpl :: if_':使用類模板需要模板參數列表D:\ work \ multipoles \ Project \ boost \ boost \ math \ policies \ policy.hpp 724

錯誤2錯誤C2825:'Policy':必須是類或命名空間,後跟'::'D:\ work \ multipoles \ Project \ boost \ boost \ math \ policies \ policy.hpp 724

錯誤4錯誤C2146:語法錯誤:在標識符'promote_double_type'之前缺少','D:\ work \ multipoles \ Project \ boost \ boost \ math \ policies \ policy.hpp 724

錯誤5錯誤C2065:promote_double_type「:未聲明的標識符d:\工作\多極\項目\提升\提升\數學\政策\ policy.hpp 724

錯誤3錯誤C2039: 'promote_double_type':是不是「全局命名空間」的成員D:\ work \ multipoles \ Project \ boost \ boost \ math \ policies \ policy.hpp 724

任何指針將不勝感激!

+0

我知道這些問題可能是由於缺少';'引起的,某處。然而,當我在文件的第一行包含boost時,我會得到相同的編譯問題... – Matthias 2011-04-07 21:57:33

+0

您能向我們展示您正在編譯的代碼嗎? – GManNickG 2011-04-08 04:42:39

+0

確定的事情:這是我稱之爲http://pastebin.com/iZQ9neBP的增強功能的文件。這些是包含的頭文件,只是要保存:http://pastebin.com/e3Q2w1fA,http://pastebin.com/LqpU2eAp – Matthias 2011-04-08 09:54:44

回答

1

好吧,這是通過一個。在我的代碼中,l和m是無符號的。但是legendre_p(int,int,T)只有一個重載。因此,我的函數調用映射到legendre_p(int,T,&策略)(或者我認爲)。