2016-09-08 63 views
1

我不明白digamma function of boost如何在程序中使用。任何例子,讚賞。我包括提高如何在boost中使用digamma函數

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

但函數調用digamma(x),其中x是一個double提供了以下錯誤:

error: there are no arguments to ‘digamma’ that depend on a template parameter, so a declaration of ‘digamma’ must be available [-fpermissive]

+1

你有什麼不明白的?您只需插入一個值並獲取記錄的結果,並不容易。 –

+0

更具體地說,如果該功能不知何故不適合你,請出示你的[mcve],這樣我們就可以看到你在做什麼錯誤/你沒有正確理解。 –

+0

剛剛編輯了這個問題。 – user3639557

回答

1

下面是一個例子: http://cpp.sh/7bdu

#include <boost/math/special_functions/digamma.hpp> 
#include <iostream> 
int main() { 
    std::cout << boost::math::digamma(3.14) << "\n"; 
} 

編輯:這個問題是用一個錯誤信息編輯的。錯誤消息意味着編譯器沒有找到digamma的定義,因爲您沒有包含命名空間位boost::math::

+0

啊,你說得對。有沒有辦法爲'boost :: math :: digamma()'定義一個更短的別名? – user3639557

+0

是的,您可以使用[using directives](http://en.cppreference.com/w/cpp/language/namespace#Using-directives)或[using declarations](http://en.cppreference.com/W/CPP /語言/命名空間#使用申述)。 –

相關問題