Hi!
May I write here a few words, please?
I want to point at one thing in the DirectXMath.
The types DirectX::XMFLOAT4 and others
are POD, but the static assert:
struct CMonadFontVertex
{DirectX::XMFLOAT4 Font;float Channel;DirectX::XMFLOAT4 Color;CMonadFontVertex() throw();CMonadFontVertex(const CMonadFontVertex & Source) throw() = default;CMonadFontVertex(CMonadFontVertex && Source) throw() = default;CMonadFontVertex & operator=(const CMonadFontVertex & Source) throw() = default;CMonadFontVertex & operator=(CMonadFontVertex && Source) throw() = default;};static_assert(std::is_nothrow_move_constructible<CMonadFontVertex>::value, "Move Ctor.");static_assert(std::is_nothrow_move_assignable<CMonadFontVertex>::value, "Move Assign.");
does not work.
The idea is, that these math structures could be included into custom vertices, etc.
They would be movable with a minimum risk. (only a difference, that they become movable). I know, that problem would be, when the structures become movable and a new build would have a different code/result (but maybe the better code).