最終更新日時:
が更新

履歴 編集

function template
<simd>

std::simd::any_of(C++26)

namespace std::simd {
  template<std::size_t Bytes, class Abi>
  constexpr bool any_of(const basic_mask<Bytes, Abi>& k) noexcept; // (1) C++26

  constexpr bool any_of(std::same_as<bool> auto x) noexcept;       // (2) C++26
}

概要

マスクの要素のうち、いずれかがtrueであるかを判定する。

  • (1) : basic_maskkのいずれかの要素がtrueであるかを判定する。
  • (2) : スカラーのboolxをそのまま返す(SIMD-genericなコードを書けるようにするためのオーバーロード)。

戻り値

  • (1) : kの少なくともひとつの要素がtrueであればtrue、そうでなければfalseを返す。
  • (2) : xを返す。

例外

投げない

#include <simd>
#include <print>

namespace simd = std::simd;

int main()
{
  simd::vec<int, 4> v([](int i) { return i; }); // {0, 1, 2, 3}

  std::println("{}", simd::any_of(v < 2)); // 2未満の要素が存在する
  std::println("{}", simd::any_of(v < 0)); // 0未満の要素は存在しない
}

出力

true
false

バージョン

言語

  • C++26

処理系

関連項目

参照