Invocar começar e terminar usando diretiva?

O idioma estabelecido para invocarswap é:

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

Deste jeito,swap pode ser sobrecarregado para tipos definidos pelo usuário fora dostd namespace.

Devemos invocarbegin eend da mesma forma?

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

Ou devemos apenas escrever:

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

questionAnswers(4)

yourAnswerToTheQuestion