[C++] Kompilacja GNU GCC a funkcja transform z <algorithm>

Witam!

Mam taki problem przy wywoływaniu funkcji transform z :

:arrow: http://cplusplus.com/reference/algorithm/transform/

  • chodzi o 1-szą wersję, tą z czterema argumentami.

Wywołuję ją dobrze, nie ma mowy o żadnych pomyłkach, bo na Comeau C++ Online wszystko śmiga. Jako 4-ty argument przekazuję adres funkcji tolower z .

No matching function for call to

Pierwszy raz się spotykam z takim problemem, wygląda na błąd w g++. U mnie błąd również występuje na g++ 4.4.1, choć komunikat jest inny. Zamiast mam . Problem sprawia std::tolower, nie można pobrać jej adresu, bo jest przeładowana, a kompilator nie może się domyślić o którą wersję chodzi.

Jako obejście możesz użyć rzutowania na właściwy typ wskaźnika:

(int(*)(int))std::tolower

Rzeczywiście - pomogło. Dzięki :slight_smile:

U siebie mam takie przeładowane wersje:

lolhb.png