Sie sind fast vollständig redundant. Wie @Revolver bemerkt, wurden sie in verschiedenen Papieren vorgestellt, und alignment_of
kommt von boost
fast wörtlich.
Aber das bedeutet nicht, dass das Merkmal nutzlos ist.
Ein template<class...>class
kann an andere template
s übergeben und mit Metaprogrammierung verwendet werden. Operatoren wie alignof
können nicht: Sie müssten die template<class>class alignment_of
schreiben, bevor Sie sie an Metaprogrammierungseinrichtungen übergeben könnten.
Nun könnte das gleiche von sizeof
, die eine std::size_of<class>
Vorlage benötigen, gesagt werden.
...
Die Zugabe von _v
war, weil sie jeder in std
::value
integral_constant
-Typ Vorlage gefegt und hat eine _v
variable Vorlage. Wenn man bedenkt, welche wo würdig und welche nicht bikeshed painting und fast sinnlos sind: es ist einfacher, jeden zu tun, als sich Mühe zu geben, die Würdigen zu erledigen. Es ist kein Beweis dafür, dass das Merkmal nicht obsolet ist.
Um wahren Fehler zu haben, wenn Sie mit Ausdruck anstelle von verwenden * gnu-alignof-expression * :-). – Jarod42