Gegeben die folgenden
%Vor% Die folgenden Compiler stimmen zu, dass litmus
pod:
MSVC12 (VS2013 RTM) behauptet jedoch, dass die zweite Assert fehlschlägt.
BEARBEITEN Zur Information:
is_trivially_copyable<litmus>
gibt True-Ness auf MSVC zurück. Dies könnte für viele Fälle nützlich sein, in denen die tatsächliche POD-Einheit nicht unbedingt erforderlich ist.
GCC und Clang; Diese Klasse ist POD.
Das hängt davon ab, was genau du meinst "make MSVC behandelt die Klasse als Pod". Wenn Sie die Interna des Compilers meinen, dann nein. Sie können jedoch (in der Praxis) das Merkmal für litmus
spezialisieren:
Beachten Sie, dass das streng normierte Verhalten zu undefiniertem Verhalten führt (Danke @ R.MartinhoFernandes, um dies zu verdeutlichen). Als compilerspezifische Problemumgehung würde ich jedoch erwarten, dass es funktioniert. Verwenden Sie ohne Garantie.
Tags und Links c++ visual-c++ pod static-assert