Это утверждение из стандарта ISO C ++ 14.8.2.4 / 3rd: Вывод аргументов шаблона из типа
A given type P can be composed from a number of other types, templates,
and non-type values:
— A function type includes the types of each of the function parameters
and the return type.
— A pointer to member type includes the type of the class object pointed
to and the type of the member pointed to.
— A type that is a specialization of a class template (e.g., A<int>)
includes the types, templates, and non-type values referenced by the
template argument list of the specialization.
— An array type includes the array element type and the value of the
array bound.
In most cases, the types, templates, and non-type values that
are used to compose P participate in template argument deduction. That is,they
may be used to determine the value of a template argument, and the value so
determined must be consistent with the values determined elsewhere. In certain
contexts, how ever, the value does not participate in type deduction, but
instead uses the values of template arguments that were either deduced
elsewhere or explicitly specified. If a template parameter is used only in
nondeduced contexts and is not explicitly specified, template argument
deduction fails.
Привет всем, я пытался вывести аргументы шаблона, беря адрес функции
шаблон, а также аргументы шаблона функции преобразования Deducing.
В 4-м пункте ... я знаю, что компилятор не может определить значение границы основного массива, если граница не ссылается на ссылку или тип указателя. Границы основных массивов не являются частью типов параметров функции.
Может ли кто-нибудь в состоянии объяснить каждый пункт примером, пожалуйста ...