Czekam na zadeklarowanie typu zewnętrznego wskaźnika funkcji "C". Jest to zmienna składowa. Składnia w this question Nie mogę skompilować.Jak zadeklarować członka jako wskaźnik do zewnętrznej funkcji "C"?
template<typename Sig> struct extern_c_fp {
extern "C" typedef typename std::add_pointer<Sig>::type func_ptr_type;
};
Mam eksperymentował z umieszczeniem extern "C"
na obu końcach, a między typedef
i typename
oraz między type
i func_ptr_type
, ale kompilator odrzucić wszystko. Jakieś sugestie?
Dzięki szablonom aliasów "extern" C, to działałoby. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1463 –
BTW Potrzebujesz 'Sig' by być" zewnętrznym "C" '. Dodawanie wskaźnika do typu funkcji nie ma powiązania. To jest sam typ funkcji. Podczas tworzenia typu funkcji wywołujesz powiązanie. Nie podczas nazywania istniejącego typu funkcji - istniejący typ ma powiązanie, które ma. –
http://liveworkspace.org/code/768027ef00bb0a31e76d8d856ac50801 Narzeka mniej, ale nadal jest problematyczna. – Puppy