Jak oddać argumenty szablonu

głosy
0

Próbuję rzucić argument type2 pisać. To naprawdę nie działa.

Szablon
Typ większe (typu X, typ2 static_cast (Y));

szablon
Rodzaj większe (Typ X, Type2 static_cast (Type2));

To nie jest nawet kompilacji.

07:23: error: „Type2” nie został uznany

08:21: error: „Type2” nie został uznany

08:27: błąd: oczekiwano '' lub '...' przed 'static_cast' funkcja 'int main ()':

13:17: błąd: nie pasującej funkcji dla wywołania do „większej (int, int)”

13:17: uwaga: kandydat jest:

8: 6: uwaga: template> Wpisz większe (typu int)

8: 6: uwaga: szablon argumentu odliczenie / substytucja nie powiodło się:

13:17: uwaga: nie można wywnioskować parametr szablonu „”

15:20: błąd: nie pasującej funkcji dla wywołania do „większej (int, char)”

15:20: uwaga: kandydat jest:

8: 6: uwaga: template> Wpisz większe (typu int)

8: 6: uwaga: szablon argumentu odliczenie / substytucja nie powiodło się:

15:20: uwaga: nie można wywnioskować parametr szablonu „”

17:21: błąd: nie pasującej funkcji dla wywołania „większe (podwójne, podwójne)”

17:21: uwaga: kandydat jest:

8: 6: uwaga: template> Wpisz większe (typu int)

8: 6: uwaga: szablon argumentu odliczenie / substytucja nie powiodło się:

17:21: uwaga: nie można wywnioskować parametr szablonu „”

23:40: błąd: nie pasującej funkcji dla wywołania do 'większej (std :: string &, std :: string &)'

23:40: uwaga: kandydat jest:

8: 6: uwaga: template> Wpisz większe (typu int)

8: 6: uwaga: szablon argumentu odliczenie / substytucja nie powiodło się:

23:40: uwaga: nie można przekonwertować 'STR2' '(typ std :: string {std :: aka basic_string}') aby wpisać 'INT'

Utwórz 10/10/2019 o 00:47
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

Myślę, że chcesz zrobić to statycznego odlewania wewnątrz funkcji. Na przykład:

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

Jednakże, jest to możliwe, że źle zrozumiałem pytanie. Mam nadzieję że to pomoże.

Odpowiedział 10/10/2019 o 10:38
źródło użytkownik

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