Спеціалізація шаблону — одна із можливостей . Вона дозволяє задавати альтернативні реалізації шаблону, коли значення параметрів шаблону є певними наперед заданими типами.
Спеціалізація шаблону зазвичай використовується для:
- оптимізації — спеціалізована версія шаблону матиме оптимальніший код за рахунок знання особливостей типу;
- спрощення коду — винесення часткових випадків у окремі реалізації спростить код (подібно до використання патерну проектування стратегія).
Приклади
- Реалізація функції sort() залежить від численних обмінів елементів значеннями. Якщо операція обміну значеннями є швидкою, як для атомарних типів чи вказівників, то її можна використовувати безпосередньо. Якщо ж вона є повільною, тоді потрібно створити для кожного елемента вказівник і здійснювати обмін значеннями серед вказівників.
- Стандартним прикладом спеціалізації шаблону є vector<bool> — спеціалізація шаблона послідовного контейнера бібліотеки STL, яка використовує однобітне зберігання значень типу bool.
Часткова спеціалізація шаблону
На відміну від шаблонів функцій, шаблони класів можуть мати часткові спеціалізації. Це відбувається при спеціалізації шаблону класу, коли конкретні значення типів задаються тільки для частини параметрів шаблону.
Часткова спеціалізація шаблонів функцій не підтримується, в тому числі для функцій класу, але подібного ефекту можна досягти за допомогою перевантаження функцій.
Література
- (1 лютого 2001). . Addison Wesley. с. 23. ISBN .
- Vandevoorde, David; Josuttis, Nicolai M. (2003). C++ Templates: The complete Guide. Addison-Wesley. ISBN .
Це незавершена стаття про структури даних. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття потребує додаткових для поліпшення її .(березень 2016) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Specializaciya shablonu odna iz mozhlivostej shabloniv u C Vona dozvolyaye zadavati alternativni realizaciyi shablonu koli znachennya parametriv shablonu ye pevnimi napered zadanimi tipami Specializaciya shablonu zazvichaj vikoristovuyetsya dlya optimizaciyi specializovana versiya shablonu matime optimalnishij kod za rahunok znannya osoblivostej tipu sproshennya kodu vinesennya chastkovih vipadkiv u okremi realizaciyi sprostit kod podibno do vikoristannya paternu proektuvannya strategiya Prikladired Realizaciya funkciyi sort zalezhit vid chislennih obminiv elementiv znachennyami Yaksho operaciya obminu znachennyami ye shvidkoyu yak dlya atomarnih tipiv chi vkazivnikiv to yiyi mozhna vikoristovuvati bezposeredno Yaksho zh vona ye povilnoyu todi potribno stvoriti dlya kozhnogo elementa vkazivnik i zdijsnyuvati obmin znachennyami sered vkazivnikiv Standartnim prikladom specializaciyi shablonu ye vector lt bool gt specializaciya shablona poslidovnogo kontejnera biblioteki STL yaka vikoristovuye odnobitne zberigannya znachen tipu bool Chastkova specializaciya shablonured Na vidminu vid shabloniv funkcij shabloni klasiv mozhut mati chastkovi specializaciyi Ce vidbuvayetsya pri specializaciyi shablonu klasu koli konkretni znachennya tipiv zadayutsya tilki dlya chastini parametriv shablonu Chastkova specializaciya shabloniv funkcij ne pidtrimuyetsya v tomu chisli dlya funkcij klasu ale podibnogo efektu mozhna dosyagti za dopomogoyu perevantazhennya funkcij Literaturared Alexandrescu Andrei 1 lyutogo 2001 Modern C Design Addison Wesley s 23 ISBN 0 201 70431 5 Vandevoorde David Josuttis Nicolai M 2003 C Templates The complete Guide Addison Wesley ISBN 0 201 73484 2 nbsp Ce nezavershena stattya pro strukturi danih Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno berezen 2016 Otrimano z https uk wikipedia org w index php title Specializaciya shablonu amp oldid 41667277 Chastkova specializaciya shablonu