2015-04-17 122 views
-2

我有一個問題,當我可以有一個參數有三個模板參數的函數。 當我想編譯我的代碼g ++說,函數聲明瞭聲明。錯誤調用模板函數C++

功能:

double FunctionXY(
    const Object<float, vectorType, T> obj, //In 
    const double d) 
{ 
.... 
return d; 
} 

如果我把它叫做:

FunctionXY(&H, d); 

構造的H:

Object<float, vectorType, T> Obj("Object"); 

我也想給全功能的模板,然後把那些obj模板參數中的模板變量。

任何人有一個想法我做錯了什麼?

+0

你爲什麼按值傳遞一個指針H而不是隻是對象? – tillaert

+0

顯示完整的未更改的錯誤消息。 –

回答

1

該函數的值爲Object。你正在嘗試傳遞一個指針。

無論是傳遞一個值:

FunctionXY(H,d); 

或改變(或過載)函數取一個指針

double FunctionXY(
    const Object<float, vectorType, T> * obj, //In 
    const double d) //    ^
+0

我發現T不太可能是在這種情況下可以使用的實際類型。 –

+0

@CaptainGiraffe:我不知道你是怎麼知道在這方面有什麼沒有被宣佈的,但是,如果不是的話,會有更多的錯誤。 –

+0

是的,謝謝... That's emberassing;)。我改變了很多,所以我忘記了這一點。 –