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

履歴 編集

# 非推奨だったregisterキーワードを削除 [P0001R1](C++17)

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

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

## 概要

C++17ではC++11で非推奨化された`register`キーワードを削除する。

C言語から引き継いだ`register`キーワードは、変数をCPUのレジスタ上に保存するための記憶クラス指定子である。

    // 変数vを、メモリの代わりにレジスタに保存する。
    // 保存できない場合はメモリに保存する
    register int v = 42;

`register`キーワードは最適化 (高速化) のためのヒントではあるが、非推奨化の提案が出た時点で、コンパイラから単に無視される機能となっていた。

`register`キーワードはC++17標準では使用しなくなるが、将来のために予約されたままとなる。

## 関連項目

- C++11 registerキーワードを非推奨化

## 参照

- P0001R1: Remove Deprecated Use of the register Keyword
- P0001R0: Remove Deprecated Use of the register Keyword