1515
1616#define DIRECTX_MATH_VERSION 312
1717
18- #if defined(_MSC_VER) && (_MSC_VER < 1800 )
19- #error DirectX Math requires Visual C++ 2013 or later.
18+ #if defined(_MSC_VER) && (_MSC_VER < 1900 )
19+ #error DirectX Math requires Visual C++ 2015 or later.
2020#endif
2121
2222#if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) && !defined(_M_HYBRID_X86_ARM64) && (!_MANAGED) && (!_M_CEE) && (!defined(_M_IX86_FP) || (_M_IX86_FP > 1)) && !defined(_XM_NO_INTRINSICS_) && !defined(_XM_VECTORCALL_)
@@ -268,12 +268,11 @@ inline bool XMComparisonAnyOutOfBounds(uint32_t CR) { return (((CR) & XM_CRMASK_
268268 ****************************************************************************/
269269
270270#pragma warning(push)
271- #pragma warning(disable:4068 4201 4365 4324 4608 4820)
271+ #pragma warning(disable:4068 4201 4365 4324 4820)
272272// C4068: ignore unknown pragmas
273273// C4201: nonstandard extension used : nameless struct/union
274274// C4365: Off by default noise
275275// C4324/4820: padding warnings
276- // C4608: false union intialization warning from VS 2013
277276
278277#ifdef _PREFAST_
279278#pragma prefast(push)
@@ -458,14 +457,10 @@ __declspec(align(16)) struct XMMATRIX
458457 XMMATRIX(const XMMATRIX&) = default;
459458 XMMATRIX& operator=(const XMMATRIX&) = default;
460459
461- #if !defined(_MSC_VER) || _MSC_VER >= 1900
462460 XMMATRIX(XMMATRIX&&) = default;
463461 XMMATRIX& operator=(XMMATRIX&&) = default;
464462
465463 constexpr XMMATRIX(FXMVECTOR R0, FXMVECTOR R1, FXMVECTOR R2, CXMVECTOR R3) : r{ R0,R1,R2,R3 } {}
466- #else
467- XMMATRIX(FXMVECTOR R0, FXMVECTOR R1, FXMVECTOR R2, CXMVECTOR R3) { r[0] = R0; r[1] = R1; r[2] = R2; r[3] = R3; }
468- #endif
469464 XMMATRIX(float m00, float m01, float m02, float m03,
470465 float m10, float m11, float m12, float m13,
471466 float m20, float m21, float m22, float m23,
@@ -507,10 +502,8 @@ struct XMFLOAT2
507502 XMFLOAT2(const XMFLOAT2&) = default;
508503 XMFLOAT2& operator=(const XMFLOAT2&) = default;
509504
510- #if !defined(_MSC_VER) || _MSC_VER >= 1900
511505 XMFLOAT2(XMFLOAT2&&) = default;
512506 XMFLOAT2& operator=(XMFLOAT2&&) = default;
513- #endif
514507
515508 XM_CONSTEXPR XMFLOAT2(float _x, float _y) : x(_x), y(_y) {}
516509 explicit XMFLOAT2(_In_reads_(2) const float *pArray) : x(pArray[0]), y(pArray[1]) {}
@@ -524,10 +517,8 @@ __declspec(align(16)) struct XMFLOAT2A : public XMFLOAT2
524517 XMFLOAT2A(const XMFLOAT2A&) = default;
525518 XMFLOAT2A& operator=(const XMFLOAT2A&) = default;
526519
527- #if !defined(_MSC_VER) || _MSC_VER >= 1900
528520 XMFLOAT2A(XMFLOAT2A&&) = default;
529521 XMFLOAT2A& operator=(XMFLOAT2A&&) = default;
530- #endif
531522
532523 XM_CONSTEXPR XMFLOAT2A(float _x, float _y) : XMFLOAT2(_x, _y) {}
533524 explicit XMFLOAT2A(_In_reads_(2) const float *pArray) : XMFLOAT2(pArray) {}
@@ -545,10 +536,8 @@ struct XMINT2
545536 XMINT2(const XMINT2&) = default;
546537 XMINT2& operator=(const XMINT2&) = default;
547538
548- #if !defined(_MSC_VER) || _MSC_VER >= 1900
549539 XMINT2(XMINT2&&) = default;
550540 XMINT2& operator=(XMINT2&&) = default;
551- #endif
552541
553542 XM_CONSTEXPR XMINT2(int32_t _x, int32_t _y) : x(_x), y(_y) {}
554543 explicit XMINT2(_In_reads_(2) const int32_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@@ -565,10 +554,8 @@ struct XMUINT2
565554 XMUINT2(const XMUINT2&) = default;
566555 XMUINT2& operator=(const XMUINT2&) = default;
567556
568- #if !defined(_MSC_VER) || _MSC_VER >= 1900
569557 XMUINT2(XMUINT2&&) = default;
570558 XMUINT2& operator=(XMUINT2&&) = default;
571- #endif
572559
573560 XM_CONSTEXPR XMUINT2(uint32_t _x, uint32_t _y) : x(_x), y(_y) {}
574561 explicit XMUINT2(_In_reads_(2) const uint32_t *pArray) : x(pArray[0]), y(pArray[1]) {}
@@ -587,10 +574,8 @@ struct XMFLOAT3
587574 XMFLOAT3(const XMFLOAT3&) = default;
588575 XMFLOAT3& operator=(const XMFLOAT3&) = default;
589576
590- #if !defined(_MSC_VER) || _MSC_VER >= 1900
591577 XMFLOAT3(XMFLOAT3&&) = default;
592578 XMFLOAT3& operator=(XMFLOAT3&&) = default;
593- #endif
594579
595580 XM_CONSTEXPR XMFLOAT3(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {}
596581 explicit XMFLOAT3(_In_reads_(3) const float *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
@@ -604,10 +589,8 @@ __declspec(align(16)) struct XMFLOAT3A : public XMFLOAT3
604589 XMFLOAT3A(const XMFLOAT3A&) = default;
605590 XMFLOAT3A& operator=(const XMFLOAT3A&) = default;
606591
607- #if !defined(_MSC_VER) || _MSC_VER >= 1900
608592 XMFLOAT3A(XMFLOAT3A&&) = default;
609593 XMFLOAT3A& operator=(XMFLOAT3A&&) = default;
610- #endif
611594
612595 XM_CONSTEXPR XMFLOAT3A(float _x, float _y, float _z) : XMFLOAT3(_x, _y, _z) {}
613596 explicit XMFLOAT3A(_In_reads_(3) const float *pArray) : XMFLOAT3(pArray) {}
@@ -626,10 +609,8 @@ struct XMINT3
626609 XMINT3(const XMINT3&) = default;
627610 XMINT3& operator=(const XMINT3&) = default;
628611
629- #if !defined(_MSC_VER) || _MSC_VER >= 1900
630612 XMINT3(XMINT3&&) = default;
631613 XMINT3& operator=(XMINT3&&) = default;
632- #endif
633614
634615 XM_CONSTEXPR XMINT3(int32_t _x, int32_t _y, int32_t _z) : x(_x), y(_y), z(_z) {}
635616 explicit XMINT3(_In_reads_(3) const int32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
@@ -647,10 +628,8 @@ struct XMUINT3
647628 XMUINT3(const XMUINT3&) = default;
648629 XMUINT3& operator=(const XMUINT3&) = default;
649630
650- #if !defined(_MSC_VER) || _MSC_VER >= 1900
651631 XMUINT3(XMUINT3&&) = default;
652632 XMUINT3& operator=(XMUINT3&&) = default;
653- #endif
654633
655634 XM_CONSTEXPR XMUINT3(uint32_t _x, uint32_t _y, uint32_t _z) : x(_x), y(_y), z(_z) {}
656635 explicit XMUINT3(_In_reads_(3) const uint32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
@@ -670,10 +649,8 @@ struct XMFLOAT4
670649 XMFLOAT4(const XMFLOAT4&) = default;
671650 XMFLOAT4& operator=(const XMFLOAT4&) = default;
672651
673- #if !defined(_MSC_VER) || _MSC_VER >= 1900
674652 XMFLOAT4(XMFLOAT4&&) = default;
675653 XMFLOAT4& operator=(XMFLOAT4&&) = default;
676- #endif
677654
678655 XM_CONSTEXPR XMFLOAT4(float _x, float _y, float _z, float _w) : x(_x), y(_y), z(_z), w(_w) {}
679656 explicit XMFLOAT4(_In_reads_(4) const float *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@@ -687,10 +664,8 @@ __declspec(align(16)) struct XMFLOAT4A : public XMFLOAT4
687664 XMFLOAT4A(const XMFLOAT4A&) = default;
688665 XMFLOAT4A& operator=(const XMFLOAT4A&) = default;
689666
690- #if !defined(_MSC_VER) || _MSC_VER >= 1900
691667 XMFLOAT4A(XMFLOAT4A&&) = default;
692668 XMFLOAT4A& operator=(XMFLOAT4A&&) = default;
693- #endif
694669
695670 XM_CONSTEXPR XMFLOAT4A(float _x, float _y, float _z, float _w) : XMFLOAT4(_x, _y, _z, _w) {}
696671 explicit XMFLOAT4A(_In_reads_(4) const float *pArray) : XMFLOAT4(pArray) {}
@@ -710,10 +685,8 @@ struct XMINT4
710685 XMINT4(const XMINT4&) = default;
711686 XMINT4& operator=(const XMINT4&) = default;
712687
713- #if !defined(_MSC_VER) || _MSC_VER >= 1900
714688 XMINT4(XMINT4&&) = default;
715689 XMINT4& operator=(XMINT4&&) = default;
716- #endif
717690
718691 XM_CONSTEXPR XMINT4(int32_t _x, int32_t _y, int32_t _z, int32_t _w) : x(_x), y(_y), z(_z), w(_w) {}
719692 explicit XMINT4(_In_reads_(4) const int32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@@ -732,10 +705,8 @@ struct XMUINT4
732705 XMUINT4(const XMUINT4&) = default;
733706 XMUINT4& operator=(const XMUINT4&) = default;
734707
735- #if !defined(_MSC_VER) || _MSC_VER >= 1900
736708 XMUINT4(XMUINT4&&) = default;
737709 XMUINT4& operator=(XMUINT4&&) = default;
738- #endif
739710
740711 XM_CONSTEXPR XMUINT4(uint32_t _x, uint32_t _y, uint32_t _z, uint32_t _w) : x(_x), y(_y), z(_z), w(_w) {}
741712 explicit XMUINT4(_In_reads_(4) const uint32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
@@ -761,10 +732,8 @@ struct XMFLOAT3X3
761732 XMFLOAT3X3(const XMFLOAT3X3&) = default;
762733 XMFLOAT3X3& operator=(const XMFLOAT3X3&) = default;
763734
764- #if !defined(_MSC_VER) || _MSC_VER >= 1900
765735 XMFLOAT3X3(XMFLOAT3X3&&) = default;
766736 XMFLOAT3X3& operator=(XMFLOAT3X3&&) = default;
767- #endif
768737
769738 XM_CONSTEXPR XMFLOAT3X3(float m00, float m01, float m02,
770739 float m10, float m11, float m12,
@@ -799,10 +768,8 @@ struct XMFLOAT4X3
799768 XMFLOAT4X3(const XMFLOAT4X3&) = default;
800769 XMFLOAT4X3& operator=(const XMFLOAT4X3&) = default;
801770
802- #if !defined(_MSC_VER) || _MSC_VER >= 1900
803771 XMFLOAT4X3(XMFLOAT4X3&&) = default;
804772 XMFLOAT4X3& operator=(XMFLOAT4X3&&) = default;
805- #endif
806773
807774 XM_CONSTEXPR XMFLOAT4X3(float m00, float m01, float m02,
808775 float m10, float m11, float m12,
@@ -826,10 +793,8 @@ __declspec(align(16)) struct XMFLOAT4X3A : public XMFLOAT4X3
826793 XMFLOAT4X3A(const XMFLOAT4X3A&) = default;
827794 XMFLOAT4X3A& operator=(const XMFLOAT4X3A&) = default;
828795
829- #if !defined(_MSC_VER) || _MSC_VER >= 1900
830796 XMFLOAT4X3A(XMFLOAT4X3A&&) = default;
831797 XMFLOAT4X3A& operator=(XMFLOAT4X3A&&) = default;
832- #endif
833798
834799 XM_CONSTEXPR XMFLOAT4X3A(float m00, float m01, float m02,
835800 float m10, float m11, float m12,
@@ -860,10 +825,8 @@ struct XMFLOAT4X4
860825 XMFLOAT4X4(const XMFLOAT4X4&) = default;
861826 XMFLOAT4X4& operator=(const XMFLOAT4X4&) = default;
862827
863- #if !defined(_MSC_VER) || _MSC_VER >= 1900
864828 XMFLOAT4X4(XMFLOAT4X4&&) = default;
865829 XMFLOAT4X4& operator=(XMFLOAT4X4&&) = default;
866- #endif
867830
868831 XM_CONSTEXPR XMFLOAT4X4(float m00, float m01, float m02, float m03,
869832 float m10, float m11, float m12, float m13,
@@ -887,10 +850,8 @@ __declspec(align(16)) struct XMFLOAT4X4A : public XMFLOAT4X4
887850 XMFLOAT4X4A(const XMFLOAT4X4A&) = default;
888851 XMFLOAT4X4A& operator=(const XMFLOAT4X4A&) = default;
889852
890- #if !defined(_MSC_VER) || _MSC_VER >= 1900
891853 XMFLOAT4X4A(XMFLOAT4X4A&&) = default;
892854 XMFLOAT4X4A& operator=(XMFLOAT4X4A&&) = default;
893- #endif
894855
895856 XM_CONSTEXPR XMFLOAT4X4A(float m00, float m01, float m02, float m03,
896857 float m10, float m11, float m12, float m13,
0 commit comments