С этими двумя функциями вы, вероятно, не увидите заметного различия, независимо от того, встроен ли компилятор в функции или нет.
Причина в том, что вставка потока (<<
) довольно медленная.Гораздо медленнее, чем один простой (не встроенный) вызов функции.
И, как уже отмечали другие, вы действительно должны привыкнуть к передаче строк по ссылке на const (и любым другим объектам, которые не являютсядействительно очень дешево копировать).
В некоторых ситуациях предпочтительнее передавать по значению, даже (или особенно), если копия дорогая (например, при реализации operator =
с копированием и обменом).Но они редки, и пока вы сами не можете решить, что уместно, вам гораздо лучше всегда проходить по ссылке на const, чем всегда по значению.