в этом примере:
https://godbolt.org/g/t92L7f
Заинклудили math.h, реализовали свой double pow(double a, int b) и внезапно получили, что pow(2, 10) на gcc/clang/icc вызывает какой-то библиотечный pow, а вот на вижаке - наш собственный. При этом ни у кого ошибок компиляции (или какого-нибудь ambiguous) не возникает.
Как так получилось? Если, например, убрать math.h и добавить свой pow(double, double), то вызывается pow(double, int)
видимо кто-то реализовал pow(int, int)?
http://en.cppreference.com/w/c/numeric/math/pow
Обсуждают сегодня