Como converter argumentos de modelo

votos
0

Eu estou tentando lançar o argumento de Tipo 2 com o tipo. Ele realmente não está funcionando.

Molde
Tipo maior (Tipo X, Tipo2 static_cast (y));

Molde
Tipo maior (Tipo X, Tipo2 static_cast (Tipo 2));

Não é mesmo compilar.

07:23: error: 'Type2' não tenha sido declarada

08:21: error: 'Type2' não tenha sido declarada

08:27: erro: esperado '' ou '...' antes 'static_cast' Em função 'main int ()':

13:17: erro: nenhuma função correspondente para chamar a 'maior (int, int)'

13:17: Nota: candidato é:

8: 6: Nota: template> tipo maior (Type, int)

8: 6: Nota: O argumento modelo de dedução / substituição falhou:

13:17: Nota: não foi possível deduzir parâmetro do modelo ''

15:20: erro: nenhuma função correspondente para chamar a 'maior (int, char)'

15:20: Nota: candidato é:

8: 6: Nota: template> tipo maior (Type, int)

8: 6: Nota: O argumento modelo de dedução / substituição falhou:

15:20: Nota: não foi possível deduzir parâmetro do modelo ''

17:21: erro: nenhuma função correspondente para chamar para 'maiores (double, double)'

17:21: Nota: candidato é:

8: 6: Nota: template> tipo maior (Type, int)

8: 6: Nota: O argumento modelo de dedução / substituição falhou:

17:21: Nota: não foi possível deduzir parâmetro do modelo ''

23:40: erro: nenhuma função correspondente para chamar a 'maior (std :: string e, std :: string &)'

23:40: Nota: candidato é:

8: 6: Nota: template> tipo maior (Type, int)

8: 6: Nota: O argumento modelo de dedução / substituição falhou:

23:40: Nota: não é possível converter 'str2' (tipo 'std :: string {aka std :: basic_string}') para o tipo 'int'

Publicado 10/10/2019 em 00:47
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Eu acho que você quer fazer isso fundição estática dentro da função. Por exemplo:

    template <class Type, Type2>  
    Type larger(Type x, Type2 y) {
        Type ycasted = static_cast<Type>(y);
        //compare x and ycasted
    }

No entanto, é possível que eu não entendi sua pergunta. Espero que isto ajude.

Respondeu 10/10/2019 em 10:38
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more