매개 변수 팩을 함수 포인터로 typdef하는 구문은 무엇입니까?어떻게 매개 변수 팩 인수로 함수 포인터 유형을 typedef합니까
나는 함수 포인터를 해당 형식 정의를 할 수 있도록하려면,하지만 그것은 typename
없이 잘 작동 error: expected nested-name-specifier before 'void'
매개 변수 팩을 함수 포인터로 typdef하는 구문은 무엇입니까?어떻게 매개 변수 팩 인수로 함수 포인터 유형을 typedef합니까
나는 함수 포인터를 해당 형식 정의를 할 수 있도록하려면,하지만 그것은 typename
없이 잘 작동 error: expected nested-name-specifier before 'void'
의 라인을 따라 메시지와 함께이
template< class ...Args >
struct method { typedef typename void(*type)(void*, Args...); };
뭔가를 할 때 컴파일러는 불평. 더 중첩 된 이름 지정이 없기 때문에 http://coliru.stacked-crooked.com/a/64b3fbec9276dd70
현재 typename
를 사용할 수 없습니다.
내가 (이럴 조금 명확) 당신이 또 다른 해결책은 using
대신 typedef
를 사용 할 수
template <typename ... Args>
struct method
{ typedef void(*type)(void*, Args...); };
typedef
줄에서 typename
을 제거해야한다고 가정
template <typename ... Args>
struct method
{ using type = void(*)(void*, Args...); };
항목 : HTTP ://stackoverflow.com/questions/610245/where-and-why-do-i-have-to-put-the-template-and-typename-keywords –
젠장, 미안. 나는'error : typename '이 필요하기 전에 ...'라고 말한 컴파일러의 오류를 잘못 읽었지 만 종속 형식에 대한 참조 대신 struct에 넣어 두었습니다. / –