Vector<T> で、サポートされない型に対して常に NotSupportedException がスローされる

System.Numerics.Vector<T> では、サポートされていない型パラメーターに対して常に NotSupportedException がスローされるようになりました。

変更の説明

以前の Vector<T> のメンバーでは、Tサポートされていない型だった場合に、常に NotSupportedException がスローされるとは限りませんでした。 例外が常にスローされなかったのは、ハードウェアの高速化をサポートしていたコード パスが原因でした。 たとえば、ハードウェアの高速化がないプラットフォーム (Arm32 など) で Vector<bool> + Vector<bool> を使用すると、例外をスローするのではなく default が返されました。 サポートされていない型について、Vector<T> のメンバーが示す動作には、異なるプラットフォームやハードウェア構成にわたる一貫性がありませんでした。

.NET 5 以降、Vector<T> のメンバーでは、T がサポートされていない型である場合に、すべてのハードウェア構成で常に NotSupportedException がスローされます。

サポートされていない型

Vector<T> の型パラメーターでサポートされている型は次のとおりです。

  • byte
  • sbyte
  • short
  • ushort
  • int
  • uint
  • long
  • ulong
  • float
  • double

サポートされている型は変更されていませんが、将来変更される可能性があります。

導入されたバージョン

5.0

Vector<T> の型パラメーターにサポートされていない型を使用しないでください。

影響を受ける API