Un pachet de parametri șablon în limbajul de programare C ++ este un parametru al unei funcții sau clase șablon, constând dintr-un număr arbitrar de elemente eterogene. Este o notație scurtă pentru un set eterogen de argumente șablon variadice , definite cu o elipsă [1] [2] . ...
Această caracteristică a limbajului a fost introdusă în sintaxă încă de la standardul C++11 [3] .
Sintaxa pentru declararea unui șablon de variantă tuplecu un pachet de parametri este Values:
template < typename ... values > tuplu de clasă ;Elementele unui pachet de parametri șablon pot fi tipuri de date (parametri de tip), parametri non-tip (parametri non-tip) și parametri șablon de șablon [4] .
Când un pachet de opțiuni își definește elementele, acesta se extinde într-o secvență de zero sau mai multe argumente [5] .
Comportamentul pachetului de opțiuni și semnificația acestuia pentru compilator este echivalent cu opțiunile normale, dar este tratat ca o colecție a oricărui număr de elemente ale acestuia. Pachetele de parametri care nu sunt tipuri generice pot reprezenta compoziția oricărui număr de argumente de tipul lor corespunzător. Clasele de șabloane primare, șabloanele de alias și șabloanele variabile pot avea un singur pachet de parametri șablon. Dacă este prezent, atunci poziția sa în lista de argumente trebuie să fie ultima. În șabloanele de funcție, restricțiile nu sunt atât de stricte: sunt permise pachete multiple, aranjarea lor arbitrară este permisă, atâta timp cât fiecare argument șablon după pachet poate fi dedus sau are o valoare implicită [1] .
Pentru a determina numărul de elemente din lista de pachete de parametri șablon, este destinat operatorului sizeof..., care a fost introdus de standardul limbajului C++11 [6] . Începând cu standardul C++17 , este posibil să restrângem pachetul de parametri - aplicarea în masă a oricărei operații binare la toate elementele sale [7] .