Почему мой журнал находится в пространстве имен std?

В приведенном ниже коде я определяю тривиальную logфункцию. В mainя стараюсь не называть это; Я звоню std::log. Тем не менее, мой собственный logназывается; и я вижу "журнал!" на экране. Кто-нибудь знает, почему? Я использую G++ 4.7 и clang++ 3.2.

#include <iostream>
#include <cmath>

double log(const double x) { std::cout << "log!\n"; return x; }

int main(int argc, char *argv[])
{
  std::log(3.14);
  return 0;
}
67
задан user2023370 9 August 2012 в 22:41
поделиться