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 –
BTW''extern "C"'가되기 위해서는'Sig'가 필요합니다. 함수 유형에 대한 포인터 추가에는 링키지가 없습니다. 그것은 함수 유형 자체입니다. 함수 유형을 구성 할 때 연결을 유도합니다. 기존 함수 유형의 이름을 지정하는 경우가 아니라 기존 유형이 가지고있는 연결이있는 경우. –
http://liveworkspace.org/code/768027ef00bb0a31e76d8d856ac50801 불평은 적지 만 여전히 문제가 있습니다. – Puppy