、Iは、インライン関数が蛇腹のような定義があります。最後の行でインライン関数コールエラー
extern CMODEXPORT int FMI_invoke_delete_as_class
(
FEATURE_RECORD_p_t frec, /* I: Feature record */
FMI_delete_fn_p_t fn /* I: Function pointer */
);
template<class T>
inline int FMI_invoke_delete_as_class(FEATURE_RECORD_p_t frec) // I: Feature record
{
class FMIHelper
{
public:
static int DeleteParms(FEATURE_RECORD_p_t frec)
{
//....
return error;
}
};
return FMI_invoke_delete_as_class(frec, &FMIHelper::DeleteParms);
}
をFMI_invoke_delete_as_class
の呼び出しは、この機能があるような別の.Cファイルで定義されヘッダファイル内FMI_invoke_delete_as_classの宣言は、私が投稿のように、インライン関数の前にある場合
extern int FMI_invoke_delete_as_class
(
FEATURE_RECORD_p_t frec, /* I: Feature record */
OM_class_t class_id /* I: Object class */
)
{
//...
}
extern int FMI_invoke_delete_as_class
(
FEATURE_RECORD_p_t frec, /* I: Feature record */
FMI_delete_fn_p_t fn /* I: Function pointer */
)
は、インライン目的球の呼び出しはokです。しかし、そのインライン関数の後に宣言を置くと、.cファイル内で間違った関数が呼び出されます。 私はなぜ、ちょうどLinuxの下で起こるか分からない。私は次のコードでしようと試み
あなたのカスタムタイプを代入/定義できますか?問題を再現する方が簡単です。 – gwiazdorrr