Ответ 1
Я выйду на конечность и сочетаю практический ответ со слабым юридическим обоснованием.
Слабый аргумент юриста-юриста: если я правильно понимаю это описание cppreference.com, вам не гарантируется RVO при инициализации с помощью списка инициализаторов (makeFoo2
) больше, чем с вашим возвратом int (makeFoo1
). Таким образом, не окружайте ваш int в фигурных скобках.
Практический аргумент 1: Приходите один, эти фигурные скобки должны быть излишними. Они должны быть излишними. Поэтому не используйте их, это не кажется правильным.
Практический аргумент 2: Принцип наименьшего удивления. Используя эти фигурные скобки, вы подразумеваете, что что-то не так с формой без брекетов. Я был бы смущен и немного удивлен фигурными скобками (хотя и не очень смущен).
Практический аргумент 3: В таких ситуациях - доверять компилятору. Это не то место, где ваше узкое место производительности (и если оно есть - сделайте его встроенной функцией, а оно не будет, или используйте ссылку, если у вас есть существующий объект и т.д.).