История изменений
Исправление firkax, (текущая версия) :
Причин может быть несколько:
1) если передать по указателю - то до полей структуры будет сложнее добираться, как в синтаксисе исходника, так и в машинном коде, а компилятору, возможно, будет сложнее это оптимизировать
2) возможно, вызываемая функция для удобства не должна знать структуру sz_string_view_t и должна работать с простыми типами, например потому что она должна принимать и rvalue тоже
3) контекст кода не видел, но возможно там надо передать именно по значению
Вопросы про «почему раскрывать» и «почему копировать» я объединил, потому что, несмотря на то что современный gcc вроде умеет передавать структуры больше машинного слова по значению, так делать не принято - это запутывает логику работы и программы и компилятора.
Исходная версия firkax, :
Причин может быть несколько:
1) если передать по указателю - то до полей структуры будет сложнее добираться, как в синтаксисе исходника, так и в машинном коде, а компилятору, возможно, будет сложнее это оптимизировать
2) возможно, вызываемая функция для удобства не должна знать структуру sz_string_view_t и должна работать с простыми типами, например потому что она должна принимать и rvalue тоже
3) контекст кода не видел, но возможно там надо передать именно по значению
Вопросы про «почему раскрывать» и «почему копировать» я объединил, потому что, несмотря на то что современный gcc вроде умеет передавать структуры по значению, так делать не принято - это запутывает логику работы и программы и компилятора.