Sono quasi completamente ridondanti. Come notato da @Revolver, sono stati introdotti in diversi tipi di documenti e lo standard alignment_of
deriva da boost
quasi alla lettera.
Ma questo non significa che il tratto sia inutile.
Un template<class...>class
può essere passato ad altri template
se utilizzato con metaprogrammazione. Operatori come alignof
non possono: si dovrebbe scrivere lo template<class>class alignment_of
prima di poterlo passare alle funzioni di metaprogrammazione.
Ora lo stesso si può dire di sizeof
che richiede un modello std::size_of<class>
.
...
L'aggiunta di _v
era perché spazzati ogni template::value
integral_constant
tipo in std
e ha aggiunto un modello variabile _v
. Considerando quali sono degni e quali non sarebbero la pittura su un bikehed e quasi inutili: è più facile fare ognuno che spendere gli sforzi per scegliere quelli degni da fare. Non è stato dimostrato che la funzionalità non sia obsoleta.
Per avere un vero errore quando si usa con expression invece di usare * gnu-alignof-expression * :-). – Jarod42