最終更新日時: 2025年07月10日 10時26分30秒 (JST)
Koichi Murase が更新

履歴 編集

# 列挙値から算術型への暗黙変換を非推奨化 [P1120R0](C++20)

このページはC++20に採用された言語機能の変更を解説しています。

のちのC++規格でさらに変更される場合があるため関連項目を参照してください。

## 概要

三方比較演算子の導入にともない、一方のオペランドが列挙型である場合の算術演算での暗黙の算術変換を非推奨とする。

    enum E1 { e };
    enum E2 { f };

    bool b = e <= 3.7; // C++20から非推奨
    int k = f - e;     // C++20から非推奨
    int x = +f - e;    // OK

## 関連項目

- C++20 `<=>`/`==`による比較演算子の自動定義
- C++26 非推奨となっていた列挙型の算術変換を削除

## 参照

- P1120R0 Consistency improvements for `<=>` and other comparison operators