2015-06-09 11 views
5

Dostaję błąd w tytule na dwóch moich szablonach. Oba mają podobne deklaracje i definicje w następujący sposób:error: C2988: nierozpoznana deklaracja szablonu/definicja

template <typename T1, typename T2> void setVideoCodecOption(T1 AVCodecContext::*option, T2 (CR2CVideoCodecSettings::*f)() const); 

template <typename T1, typename T2> 
void EncoderPrivate::setVideoCodecOption(T1 AVCodecContext::*option, (CR2CVideoCodecSettings::*f)() const) 
{ 
    T2 value = (m_videoSettings.*f)(); 
    if (value != -1) { 
     m_videoCodecContext->*option = (m_videoSettings.*f)(); 
    } 
} 

Nie rozumiem, dlaczego otrzymuję ten błąd na tych. Ktoś ma i pomysł?

Dzięki Miś

Odpowiedz

5

Brakuje zwracany typ parametru funkcji drugiego funkcji.

template <typename T1, typename T2> 
void EncoderPrivate::setVideoCodecOption(T1 AVCodecContext::*option, (CR2CVideoCodecSettings::*f)() const) 

Powinny być

template <typename T1, typename T2> 
void EncoderPrivate::setVideoCodecOption(T1 AVCodecContext::*option, T2 (CR2CVideoCodecSettings::*f)() const) 
                    ^^^added return type 
Powiązane problemy