Параметр для самого адаптера stack
является справочным, но помните, что stack
- это просто адаптер - его push
немедленно вызывает push_back
, передавая тот же параметр. Этот вызов, однако, передает параметр по значению.
Следовательно, передаваемый параметр копируется - передача по ссылке на std::stack
означает, что он копируется только один раз. Если бы это был проход по значению, то он был бы скопирован дважды (на данный момент игнорируя компилятор, удаляющий копию, что почти наверняка будет).