Ceci est la déclaration de l'ISO C++ standard 14.8.2.4/3: Déduire arguments de modèle d'un typeModèles: Spécialisations de modèle de fonction: Déduction d'argument de modèle: -> quelqu'un peut-il donner d'autres exemples pour cette déclaration?
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.
Salut à tous, j'ai essayé Déduire arguments de modèle prenant l'adresse d'un modèle fonction ainsi que la conversion Déduire arguments de modèle de fonction.
Dans le 4ème point .. je sais que le compilateur ne peut pas déduire la valeur d'un tableau principal lié à moins que la borne se réfère à un type de référence ou de pointeur. Les limites de tableau majeures ne font pas partie des types de paramètres de fonction.
Quelqu'un peut-on en mesure d'expliquer chacun et chaque point avec un exemple ... s'il vous plaît
Il fait référence à la note du 14.8.2.4/13 en C++ 03 –