En skabelonparameterpakke i C ++ programmeringssproget er en parameter for en skabelonfunktion eller -klasse, der består af et vilkårligt antal heterogene elementer. Det er en stenografi for et heterogent sæt af variadiske skabelonargumenter , defineret med en ellipse [1] [2] . ...
Denne sprogfunktion er blevet introduceret i syntaksen siden C++11 -standarden [3] .
Syntaksen til at erklære en variantskabelon tuplemed en parameterpakke er Values:
skabelon < typenavn ... værdier > klasse tuple ;Elementerne i en skabelonparameterpakke kan være datatyper (typeparametre), ikke-typeparametre (ikke-typeparametre) og skabelonskabelonparametre [4] .
Når en option pack definerer sine elementer, udvides den til en sekvens af nul eller flere argumenter [5] .
Opførselspakkens opførsel og dens betydning for compileren svarer til de normale muligheder, men den behandles som samlingen af et vilkårligt antal af dens elementer. Parameterpakker, der ikke er generiske typer, kan repræsentere sammensætningen af et hvilket som helst antal argumenter af deres tilsvarende type. Primære skabelonklasser, aliasskabeloner og variable skabeloner må kun have én skabelonparameterpakke. Hvis den er til stede, skal dens placering på listen over argumenter være den sidste. I funktionsskabeloner er begrænsningerne ikke så strenge: flere pakker er tilladt, deres vilkårlige arrangement er tilladt, så længe hvert skabelonargument efter pakken kan udledes eller har en standardværdi [1] .
For at bestemme antallet af elementer i skabelonparameterpakkelisten er operatøren tiltænkt sizeof..., som blev introduceret af sprogstandarden C++11 [6] . Startende med C++17 -standarden er det muligt at kollapse parameterpakken - masseanvendelsen af enhver binær operation til alle dens elementer [7] .