Error Kompilacja VS 2013

Odpowiedz Nowy wątek
2015-02-16 12:35
Marchewkowy
0

mam taki kod i nie wiem za bardzo co jest zle kompiluje przez vs 2013


    #else //YUR_RINGS_AMULETS
        return std::min(900, 220 + (2* (level - 1)));
              int vipstatus;

Error:
error C2782: 'const _Ty &std::min(const _Ty &,const _Ty &)' : template parameter '_Ty' is ambiguous

Pozostało 580 znaków

2015-02-16 12:37
2015-02-16 13:05
3

Argumenty do funkcji std::min są różnych typów i kompilator nie wie, który typ podstawić za _Ty.

Np. jeżeli level jest typu double to znaczy, że drugi argument w całości jest takiego typu. Za to 900 jest typu int. Mamy więc std::min(int, double) i jakie wybrać _Ty? Musisz sprawić żeby obydwie strony były tego samego typu albo jawnie podać typ w szablonie np: std::min<int>(...).


"(...) otherwise, the behavior is undefined".

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0