Я знал метод using std::swap
, позволяющий через ADL использовать определенные пользователем функции swap
, но я не знал, что это следует применять и к некоторым другим функциям.Например, я писал оскорбительно std::abs
в коде шаблона, где я должен был использовать что-то вроде:
template <class Int> void f(Int i) {
using std::abs;
Int j = abs(i);
// ...
}
Какую стандартную функцию вы можете придумать, какую из них использовать таким образом?
Примечание: g ++ помещает abs
в глобальное пространство имен при включении cstdlib
(на самом деле ctsdlib
включает stdlib.h
(который определяет функцию abs
)и #undef abs
...), что говорит стандарт?