@@ -865,8 +865,25 @@ namespace DirectX
865865 float & operator () (size_t Row, size_t Column) noexcept { return m[Row][Column]; }
866866
867867 #if (__cplusplus >= 202002L)
868- bool operator == (const XMFLOAT3X3&) const = default ;
869- auto operator <=> (const XMFLOAT3X3&) const = default ;
868+ bool operator == (const XMFLOAT3X3& M) const noexcept
869+ {
870+ return _11 == M._11 && _12 == M._12 && _13 == M._13
871+ && _21 == M._21 && _22 == M._22 && _23 == M._23
872+ && _31 == M._31 && _32 == M._32 && _33 == M._33 ;
873+ }
874+
875+ auto operator <=> (const XMFLOAT3X3& M) const noexcept
876+ {
877+ if (auto cmp = _11 <=> M._11 ; cmp != 0 ) return cmp;
878+ if (auto cmp = _12 <=> M._12 ; cmp != 0 ) return cmp;
879+ if (auto cmp = _13 <=> M._13 ; cmp != 0 ) return cmp;
880+ if (auto cmp = _21 <=> M._21 ; cmp != 0 ) return cmp;
881+ if (auto cmp = _22 <=> M._22 ; cmp != 0 ) return cmp;
882+ if (auto cmp = _23 <=> M._23 ; cmp != 0 ) return cmp;
883+ if (auto cmp = _31 <=> M._31 ; cmp != 0 ) return cmp;
884+ if (auto cmp = _32 <=> M._32 ; cmp != 0 ) return cmp;
885+ return _33 <=> M._33 ;
886+ }
870887 #endif
871888 };
872889
@@ -910,8 +927,29 @@ namespace DirectX
910927 float & operator () (size_t Row, size_t Column) noexcept { return m[Row][Column]; }
911928
912929 #if (__cplusplus >= 202002L)
913- bool operator == (const XMFLOAT4X3&) const = default ;
914- auto operator <=> (const XMFLOAT4X3&) const = default ;
930+ bool operator == (const XMFLOAT4X3& M) const noexcept
931+ {
932+ return _11 == M._11 && _12 == M._12 && _13 == M._13
933+ && _21 == M._21 && _22 == M._22 && _23 == M._23
934+ && _31 == M._31 && _32 == M._32 && _33 == M._33
935+ && _41 == M._41 && _42 == M._42 && _43 == M._43 ;
936+ }
937+
938+ auto operator <=> (const XMFLOAT4X3& M) const noexcept
939+ {
940+ if (auto cmp = _11 <=> M._11 ; cmp != 0 ) return cmp;
941+ if (auto cmp = _12 <=> M._12 ; cmp != 0 ) return cmp;
942+ if (auto cmp = _13 <=> M._13 ; cmp != 0 ) return cmp;
943+ if (auto cmp = _21 <=> M._21 ; cmp != 0 ) return cmp;
944+ if (auto cmp = _22 <=> M._22 ; cmp != 0 ) return cmp;
945+ if (auto cmp = _23 <=> M._23 ; cmp != 0 ) return cmp;
946+ if (auto cmp = _31 <=> M._31 ; cmp != 0 ) return cmp;
947+ if (auto cmp = _32 <=> M._32 ; cmp != 0 ) return cmp;
948+ if (auto cmp = _33 <=> M._33 ; cmp != 0 ) return cmp;
949+ if (auto cmp = _41 <=> M._41 ; cmp != 0 ) return cmp;
950+ if (auto cmp = _42 <=> M._42 ; cmp != 0 ) return cmp;
951+ return _43 <=> M._43 ;
952+ }
915953 #endif
916954 };
917955
@@ -958,8 +996,28 @@ namespace DirectX
958996 float & operator () (size_t Row, size_t Column) noexcept { return m[Row][Column]; }
959997
960998 #if (__cplusplus >= 202002L)
961- bool operator == (const XMFLOAT3X4&) const = default ;
962- auto operator <=> (const XMFLOAT3X4&) const = default ;
999+ bool operator == (const XMFLOAT3X4& M) const noexcept
1000+ {
1001+ return _11 == M._11 && _12 == M._12 && _13 == M._13 && _14 == M._14
1002+ && _21 == M._21 && _22 == M._22 && _23 == M._23 && _24 == M._24
1003+ && _31 == M._31 && _32 == M._32 && _33 == M._33 && _34 == M._34 ;
1004+ }
1005+
1006+ auto operator <=> (const XMFLOAT3X4& M) const noexcept
1007+ {
1008+ if (auto cmp = _11 <=> M._11 ; cmp != 0 ) return cmp;
1009+ if (auto cmp = _12 <=> M._12 ; cmp != 0 ) return cmp;
1010+ if (auto cmp = _13 <=> M._13 ; cmp != 0 ) return cmp;
1011+ if (auto cmp = _14 <=> M._14 ; cmp != 0 ) return cmp;
1012+ if (auto cmp = _21 <=> M._21 ; cmp != 0 ) return cmp;
1013+ if (auto cmp = _22 <=> M._22 ; cmp != 0 ) return cmp;
1014+ if (auto cmp = _23 <=> M._23 ; cmp != 0 ) return cmp;
1015+ if (auto cmp = _24 <=> M._24 ; cmp != 0 ) return cmp;
1016+ if (auto cmp = _31 <=> M._31 ; cmp != 0 ) return cmp;
1017+ if (auto cmp = _32 <=> M._32 ; cmp != 0 ) return cmp;
1018+ if (auto cmp = _33 <=> M._33 ; cmp != 0 ) return cmp;
1019+ return _34 <=> M._34 ;
1020+ }
9631021 #endif
9641022 };
9651023
@@ -1008,8 +1066,33 @@ namespace DirectX
10081066 float & operator () (size_t Row, size_t Column) noexcept { return m[Row][Column]; }
10091067
10101068 #if (__cplusplus >= 202002L)
1011- bool operator == (const XMFLOAT4X4&) const = default ;
1012- auto operator <=> (const XMFLOAT4X4&) const = default ;
1069+ bool operator == (const XMFLOAT4X4& M) const noexcept
1070+ {
1071+ return _11 == M._11 && _12 == M._12 && _13 == M._13 && _14 == M._14
1072+ && _21 == M._21 && _22 == M._22 && _23 == M._23 && _24 == M._24
1073+ && _31 == M._31 && _32 == M._32 && _33 == M._33 && _34 == M._34
1074+ && _41 == M._41 && _42 == M._42 && _43 == M._43 && _44 == M._44 ;
1075+ }
1076+
1077+ auto operator <=> (const XMFLOAT4X4& M) const noexcept
1078+ {
1079+ if (auto cmp = _11 <=> M._11 ; cmp != 0 ) return cmp;
1080+ if (auto cmp = _12 <=> M._12 ; cmp != 0 ) return cmp;
1081+ if (auto cmp = _13 <=> M._13 ; cmp != 0 ) return cmp;
1082+ if (auto cmp = _14 <=> M._14 ; cmp != 0 ) return cmp;
1083+ if (auto cmp = _21 <=> M._21 ; cmp != 0 ) return cmp;
1084+ if (auto cmp = _22 <=> M._22 ; cmp != 0 ) return cmp;
1085+ if (auto cmp = _23 <=> M._23 ; cmp != 0 ) return cmp;
1086+ if (auto cmp = _24 <=> M._24 ; cmp != 0 ) return cmp;
1087+ if (auto cmp = _31 <=> M._31 ; cmp != 0 ) return cmp;
1088+ if (auto cmp = _32 <=> M._32 ; cmp != 0 ) return cmp;
1089+ if (auto cmp = _33 <=> M._33 ; cmp != 0 ) return cmp;
1090+ if (auto cmp = _34 <=> M._34 ; cmp != 0 ) return cmp;
1091+ if (auto cmp = _41 <=> M._41 ; cmp != 0 ) return cmp;
1092+ if (auto cmp = _42 <=> M._42 ; cmp != 0 ) return cmp;
1093+ if (auto cmp = _43 <=> M._43 ; cmp != 0 ) return cmp;
1094+ return _44 <=> M._44 ;
1095+ }
10131096 #endif
10141097 };
10151098
0 commit comments