最終更新日時(UTC):
が更新

履歴 編集

function template
<utility>

std::to_underlying(C++23)

namespace std {
  template <class T>
  constexpr underlying_type_t<T> to_underlying(T value) noexcept; // C++23
}

概要

列挙型Tの値を基底型に変換する。

列挙型はenum class E : int { … };のようにコロンのあとに基底型を指定でき、指定しない場合の基底型はすべての列挙値を表現できる整数型となる。この関数では、列挙値を基底型に変換する。

戻り値

return static_cast<underlying_type_t<T>>(value);

#include <iostream>
#include <utility>

enum class Color : int {
  Red   = 0xff0000,
  Green = 0x00ff00,
  Blue  = 0x0000ff,
};

void print_color_value(int color) {
  std::cout << std::hex << std::showbase << color << std::endl;
}

int main() {
  print_color_value(std::to_underlying(Color::Blue));
}

出力

0xff

バージョン

言語

  • C++23

処理系

参照