Есть ли способ создать пользовательскую функцию в Markdown?

На самом деле я не думаю, что ваш вопрос показывает пример распада типа. Термин «распад» обычно используется для обозначения стандартных преобразований «от функции к указателю», «от массива до указателя» и «lvalue-to-rvalue». То, что вы делаете, - это правила вывода аргументов шаблона.

Дело в том, что вывод аргумента шаблона основан на типах , не на категориях значений . Тип ref в вашем примере - MyFunObj, и это lvalue этого типа (BTW, то же самое верно для fob). Поскольку дедукция работает над типами, FunObj выводится на тип of ref, что действительно MyFunObj.

До C ++ 11 не было способа для вывода ссылочного типа. C ++ 11 изменил это на «универсальные ссылки». Они ввели специальный случай, когда передача lvalue типа U в параметр функции, объявленный как T&& (где T является параметром шаблона шаблона функции) использует U& в качестве типа для вычета вместо U. Но это особое правило, исключение. Обычно категории значений не играют роли в вычитании типа.

0
задан Nahuatl_C137 31 December 2018 в 00:00
поделиться