Wywoływanie rozpoczęcia i zakończenia za pomocą-dyrektywy?

Ustalony idiom do wywoływaniaswap jest:

using std::swap
swap(foo, bar);

Tą drogą,swap może być przeciążony dla typów zdefiniowanych przez użytkownika pozastd przestrzeń nazw.

Powinniśmy się odwołaćbegin iend w tym samym stylu?

using std::begin;
using std::end;
some_algorithm(begin(some_container), end(some_container));

Czy powinniśmy po prostu napisać:

some_algorithm(std::begin(some_container), std::end(some_container));

questionAnswers(4)

yourAnswerToTheQuestion