Я читаю исходный код стандартной библиотеки шаблонов SGI. Я считаю, что функция operator new всегда имеет перед собой двойную двоеточие. Вот так:
T* tmp = (T*)(::operator new((size_t)(size * sizeof(T))));
operator new можно напрямую вызвать без добавления поля ::, то почему stl-кодеры пишут таким образом? Какая ловушка или ситуация могут возникнуть, если мы не используем :: перед ними.