См. «Herb Sutter» Назад к основам! Основы современного стиля C ++ ». Среди других тем он рассматривает передаваемый параметр, который был дан в прошлом, и новые идеи, которые приходят в с C ++ 11 и специально рассматривает идею передачи строк по значению.
[/g4]
Тесты показывают, что передача std::string
s по значению, в случаях, когда функция будет копировать его в любом случае, может быть значительно медленнее!
Это потому, что вы вынуждаете его всегда делать полную копию (а затем перемещаться на место), а версия const&
обновит старую строку, которая может повторно использовать уже выделенный буфер.
См. его слайд 27: Для «заданных» функций опция 1 такая же, как и всегда. Вариант 2 добавляет перегрузку для ссылки rvalue , но это дает комбинаторный взрыв, если имеется несколько параметров.
Только для параметров «sink», где должна быть создана строка (не изменилось ее существующее значение), что трюк с пропуском va lid, то есть конструкторы, в которых параметр непосредственно инициализирует член типа соответствия.
Если вы хотите увидеть, как глубоко вы можете беспокоиться об этом, посмотрите Nicolai Josuttis и удачи с этим ( «Perfect-Done!» n раз после обнаружения ошибки в предыдущей версии. Когда-либо там?)
Это также суммируется как ⧺F.15 в Стандартных правилах.
Как вы называете это в файле ветки?
{% for post in horses %}
{{ post.name }}
{% endfor %}
Кроме того, вы уверены, что имя типа сообщения лошадь, а не лошади? Если в post_type включено неверное имя типа записи, будут показаны все типы записей.