我在尋找聲明extern「C」函數指針的類型。它是一個成員變量。 this question中的語法我無法編譯。如何將成員聲明爲指向extern「C」函數的指針?
template<typename Sig> struct extern_c_fp {
extern "C" typedef typename std::add_pointer<Sig>::type func_ptr_type;
};
我已經嘗試放置extern "C"
兩端,並typedef
和typename
和type
和func_ptr_type
之間,但是編譯器之間拒絕了所有。有什麼建議麼?
使用'extern「C」'別名模板,這將工作。 http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1463 –
順便說一句,你需要'Sig'作爲'extern'C''。指向函數類型的指針不包含鏈接。這是函數類型本身。在形成函數類型時引發鏈接。不是在命名現有函數類型時 - 現有類型具有鏈接。 –
http://liveworkspace.org/code/768027ef00bb0a31e76d8d856ac50801它抱怨少,但仍然存在問題。 – Puppy