lang:cpp:template
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
lang:cpp:template [2023/11/14 17:39] – Ajout de "Mapping d'un type vers un autre via une map" root | lang:cpp:template [2025/02/05 10:07] (Version actuelle) – [const Args...] : fix typo root | ||
---|---|---|---|
Ligne 29: | Ligne 29: | ||
<code cpp> | <code cpp> | ||
- | typename< | + | template< |
void f(const Args&& | void f(const Args&& | ||
Ligne 328: | Ligne 328: | ||
void T< | void T< | ||
+ | // On instancie uniquement T< | ||
template class T< | template class T< | ||
</ | </ | ||
Ligne 337: | Ligne 338: | ||
<file cpp main.cc> | <file cpp main.cc> | ||
#include " | #include " | ||
- | |||
- | extern template class T< | ||
int main() | int main() | ||
{ | { | ||
T< | T< | ||
- | return tint.retval(); | + | return tint.fff(); |
} | } | ||
</ | </ | ||
Ligne 357: | Ligne 356: | ||
<file cpp file.cpp> | <file cpp file.cpp> | ||
- | template< | + | template< |
- | template void A:: | + | // Instanciation pour U=int |
+ | template void A:: | ||
+ | |||
+ | // Spécialisation pour U=double | ||
+ | template<> | ||
</ | </ | ||
Ligne 377: | Ligne 380: | ||
template void A< | template void A< | ||
</ | </ | ||
+ | |||
+ | * Messages d' | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | Il ne faut pas utiliser une classe spécialisée avant qu' | ||
+ | |||
+ | <code cpp> | ||
+ | template < | ||
+ | class A {}; | ||
+ | |||
+ | // Doit être défini après la spécialisation. | ||
+ | A< | ||
+ | |||
+ | template <> | ||
+ | class A< | ||
+ | </ | ||
====Afficher en string le type template==== | ====Afficher en string le type template==== | ||
<code cpp> | <code cpp> |
lang/cpp/template.1699979951.txt.gz · Dernière modification : 2023/11/14 17:39 de root