All'interno di un template variadico (variadic template) una variabile o tipo del parameter pack ('Args...') deve essere espansa applicando l'operatore di unpacking '...' (es. 'std::forward<Args>(args)...').
PACK_MUST_BE_EXPANDED
→
In un template con forwarding reference ('template<typename T> void f(T&&)'), passando un lvalue il tipo dedotto diventa 'T&', che tramite reference collapsing ('T& &&' -> 'T&') produce un lvalue reference ordinario; tentare di trattarlo come rvalue puro senza 'std::forward<T>' genera errori.
FORWARDING_REF_COLLAPSE
→
Una clausola 'static_assert(condizione, messaggio)' inserita per convalidare requisiti sui tipi (type traits) o costanti di metaprogrammazione valuta l'espressione a 'false' arrestando la compilazione.
STATIC_ASSERT_FAILED
→
La metaprogrammazione a template ricorsiva o un'espansione ciclica di tipi ha superato la profondità massima di nidificazione consentita dal compilatore (default 900/1024), indicando la mancanza di una specializzazione di base per terminare la ricorsione.
TEMPLATE_DEPTH_EXCEEDED
→
La deduzione automatica degli argomenti template per classi introdotta in C++17 fallisce quando gli argomenti del costruttore sono ambigui o non corrispondono alle 'deduction guides' definite per la classe.
CTAD_DEDUCTION_FAILED
→
Nelle fold expression unarie ('(... + args)'), la maggior parte degli operatori matematici (incluso '+', '*') non possiede un valore neutro di default e fallisce se il parameter pack contiene zero argomenti; solo '&&' (true), '||' (false) e ',' (void()) supportano fold unari vuoti.
FOLD_EXPRESSION_EMPTY_PACK
→
Introdotto in C++20 con i Concepts: il tipo T passato al template non soddisfa i requisiti definiti dalla clausola 'requires' o dal concetto associato (es. 'std::integral' o 'std::derived_from').
CONSTRAINTS_NOT_SATISFIED
→
Le funzioni 'consteval' (immediate functions) introdotte in C++20 devono essere obbligatoriamente calcolate a tempo di compilazione; passarvi come parametro una variabile determinata a runtime solleva un errore bloccante.
CONSTEVAL_NOT_CONSTANT
→