현재 문제가 발생했습니다. VS2010은 "핵무기"생성자에서 사용 된 "TFunctionPointer"가 datamember가 정의되지 않았기 때문에 &으로 정의됩니다. 누군가 이것이 내게 왜 설명해 주시겠습니까? 어떤 도움이라도 대단히 감사합니다.템플릿 멤버 함수 포인터
template<typename T>
typedef void (T::* TFunctionPointer)();
class Nuke
{
public:
Nuke(TFunctionPointer pFunction);
virtual ~Nuke();
private:
TFunctionPointer m_pFunction;
};
// 편집
난 할 노력하고있어하는 클래스의 모든 유형에 대한 함수 포인터를 저장하고 핵무기 객체의 파괴를 호출 할 수있다. RAII에 대한 비꼬아. 그러나 나는 그것이 불가능하다고 생각한다. 도움을 주셔서 감사합니다.
// EDIT
은 분명히 부스트 :: shared_ptr의 내가 찾고 있었던 것입니다.
이 답변이 작성 당시 아마 정확했다 :
당신은 형태로 함수 포인터를 포장하고 properinstantiation를 사용할 수 있습니다. 이를 명확히하기 위해 편집이 될 수 있습니다. –