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

履歴 編集

# 添字演算子内でのカンマ演算子の使用を非推奨化 [P1161R3](C++20)

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

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

## 概要

多次元配列クラスを設計する場合などで、単一の引数しかとれない添字演算子に`ar[x, y]`のようにカンマ演算子をオーバーロードして複数のインデックスを指定できるようにすることがあった。

しかしこのようなハックは、将来的に添字演算子に複数引数をとれるようにする際に障害となってしまうため、添字演算子内でのカンマ演算子の使用を非推奨化する。

    ar[x]      // C++17:OK, C++20:OK
    ar[(x, y)] // C++17:OK, C++20:OK
    ar[x, y]   // C++17:OK, C++20:非推奨

既存のカンマ演算子をオーバーロードしたコードを使用する場合は、丸カッコで囲むこと。

## 関連項目

- C++23 添字演算子の多次元サポート

## 参照

- P1161R3 Deprecate uses of the comma operator in subscripting expressions