2
我與指針工作,模板函數,函數有數組引用 參數,例如:C++函數指針無效的初始化錯誤
template< size_t N >
double MyFunction(double (&x)[N]);
,我會使用以前的功能型像一個說法在另一個函數
template< size_t N >
bouble BigFunction(double (* PtrFunc)(double (&)[N]), ...) {
double x[3];
...
// fill x
// call PtrFunc
double y = (* PtrFunc)(x); // error: ...
...
}
在主程序我請double z = BigFunction(&MyFunction, ...)
但是當我試圖用GCC 4.7.2編譯,我得到用於與N = 3的情況下(一個陣列的特定情況下,下面誤差僅爲不重要解釋t他[3]在錯誤)
錯誤:的類型的參考無效初始化 '雙(&)[3]' 從類型爲「表達雙[(((的SizeType)(((ssizetype)暗淡[ 1])+ -1))+ 1)]'
如何解決仍在使用數組引用的問題?
注:如果我通過一個結構一個typedef或具有一個std ::函數<更換指針參數雙(雙(&)[N])>問題是相同的。
在這裏,在你的榜樣ideone
編譯器錯誤,我認爲案件實際上*很重要。你能告訴你如何調用'BigFunction()'和你在調用中使用的所有參數的聲明嗎? – Angew 2013-03-27 09:25:29
相關?:http://stackoverflow.com/q/14729458/1458030 – qPCR4vir 2013-03-27 09:32:55
我調用函數就像'BigFunction(&MyFunction)'和'BigFunction'裏面我有一個數組''double x [3] '並且我調用'(* PtrFunc)(x)',錯誤在這一行中提供 – aju 2013-03-27 09:36:34