IT-lexicon › Programmeren › SFINAE

SFINAE

Programmeren Svenska → Bijgewerkt: 2026-10-03

De C++-regel dat een template die ongeldig wordt zodra de types zijn ingevuld stilletjes uit de kandidatenlijst verdwijnt in plaats van de compilatie te laten mislukken.

De regel bestond oorspronkelijk om overload resolution zich verstandig te laten gedragen, maar bleek al snel te werken als ondervragingsmiddel: schrijf een template die alleen te instantiëren valt als een type een bepaalde eigenschap heeft, en laat de compiler de ene overload kiezen die overblijft. Daaruit groeiden std::enable_if, de hele type-traitsbibliotheek en een generatie code die tijdens het compileren besliste of een type een begin()-methode had. Het werkte, maar het idioom was omslachtig en één fout leverde schermen vol meldingen op over waarom geen enkele kandidaat paste. C++20 verving de hele techniek feitelijk door concepts en requires, die hetzelfde rechtstreeks uitdrukken.

← Terug naar het lexicon