Как я могу сделать перебазирование порта назад?

Являются ли дни прохождения const std :: string & amp; как параметр над?

Нет. Многие люди берут этот совет (включая Дейва Абрахама) за пределы области, к которой он применим, и упрощают его для применения к всем параметрам std::string - Всегда , проходящему через std::string значение не является «лучшей практикой» для любых произвольных параметров и приложений, поскольку оптимизация этих обсуждений / статей сосредоточена на применении только к ограниченному набору случаев .

Если вы 're возвращающее значение, изменяя параметр или принимая значение, тогда передача по значению может сэкономить дорогое копирование и предложить синтаксические удобства.

Как и прежде, передача константой const значительно экономит , когда вы не нужно копировать .

Теперь к конкретному примеру:

Однако inval все еще намного больше размера ссылки (которая обычно реализуется как указатель). Это связано с тем, что std :: string имеет различные компоненты, включая указатель на кучу и член char [] для оптимизации коротких строк. Поэтому мне кажется, что переход по ссылке - это хорошая идея. Может ли кто-нибудь объяснить, почему Herb мог бы это сказать?

Если размер стека является проблемой (и если это не указано / оптимизировано), return_val + inval> return_val - - IOW, использование пикового стека может быть уменьшено , пройдя здесь по значению (обратите внимание: упрощение ABI). Между тем, передача по ссылке const может отключить оптимизацию. Основная причина здесь заключается не в том, чтобы избежать роста стека, а в том, чтобы обеспечить оптимизацию , где это применимо .

Дни прохода по ссылке const не превышают - - правила были сложнее, чем когда-то. Если производительность важна, вам будет разумно рассмотреть, как вы передаете эти типы, на основе сведений, которые вы используете в своих реализациях.

1
задан Tim 18 January 2019 в 04:01
поделиться

2 ответа

Обратный порт означает, что вы берете ветку темы topic, основанную на некотором коммите, то есть D, и перебазируете ее на некоторый более старый коммит, а не на новый, т.е. A.

Итак, команда будет выглядеть следующим образом:

git rebase A topic

Где A - фактический хеш коммита.

Главное, что пытается сделать глава, это то, что git не волнует, куда вы перебазируете ветку темы.

0
ответ дан 1615903 18 January 2019 в 04:01
поделиться

Хотя «назад» относится к перебазированию в более старый коммит, оно также отражает практику « дооснащения », которое в программном обеспечении является актом бэкпортинга

Действие по извлечению деталей из более новой версии системы программного обеспечения или компонента программного обеспечения и переносу их в более старую версию того же самого программного обеспечения. Он является частью этапа обслуживания в процессе разработки программного обеспечения и обычно используется для устранения проблем безопасности в более старых версиях программного обеспечения, а также для предоставления новых функций более старым версиям.

В Git этот «порт» может быть обратной перебазировкой, но чаще это вишня (потому что вы могли бы уже перебазировать свою ветвь вперед, имея необходимость реплицировать те же самые ветки). исправляет / фиксирует старую версию вашего программного обеспечения, в случае исправления ошибки)

0
ответ дан VonC 18 January 2019 в 04:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: