Jak na obsazení šablony argumenty

hlasů
0

Snažím se obsazení argument Type2 psát. Je to opravdu nefunguje.

Šablona
Typ větší (typu X, Type2 static_cast (y));

Šablona
Typ větší (typu X, Type2 static_cast (Typ 2));

Není to ani kompilaci.

07:23: error: ‚Type2‘ nebyl prohlášen

08:21: error: ‚Type2‘ nebyl prohlášen

08:27: error: očekává '' nebo '...' před 'static_cast' ve funkci 'int main ()':

13:17: error: no odpovídající funkce pro volání 'větší (int, int)'

13:17: poznámka: uchazeč:

8: 6: Poznámka: template> Typ větší (typ, int)

8: 6: Poznámka: šablony argumentem odpočtu / substituce se nezdařilo:

13:17: Poznámka: Nelze odvodit parametr šablony ‚‘

15:20: error: no odpovídající funkce pro volání 'větší (int, char)'

15:20: poznámka: uchazeč:

8: 6: Poznámka: template> Typ větší (typ, int)

8: 6: Poznámka: šablony argumentem odpočtu / substituce se nezdařilo:

15:20: Poznámka: Nelze odvodit parametr šablony ‚‘

17:21: error: no odpovídající funkce pro volání na 'větší (double, double)'

17:21: poznámka: uchazeč:

8: 6: Poznámka: template> Typ větší (typ, int)

8: 6: Poznámka: šablony argumentem odpočtu / substituce se nezdařilo:

17:21: Poznámka: Nelze odvodit parametr šablony ‚‘

23:40: error: no odpovídající funkce pro volání 'větší (std :: string &, std :: string &)'

23:40: poznámka: uchazeč:

8: 6: Poznámka: template> Typ větší (typ, int)

8: 6: Poznámka: šablony argumentem odpočtu / substituce se nezdařilo:

23:40: Poznámka: nelze převést 'Str2' (typ 'std :: string {aka std :: basic_string}') typu 'int'

Položena 10/10/2019 v 00:47
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Myslím, že chcete dělat, že statické odlévání uvnitř funkce. Například:

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

Nicméně, to je možné, že jsem špatně pochopil vaši otázku. Snad to pomůže.

Odpovězeno 10/10/2019 v 10:38
zdroj uživatelem

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