Skip to content

std::exception::what() ほか、C++98時点の throw() 例外仕様の記載漏れを修正 - #1761

Merged
faithandbrave merged 4 commits into
cpprefjp:masterfrom
pipapo-888:patch-1
Oct 3, 2026
Merged

faithandbrave merged 4 commits into
cpprefjp:masterfrom
pipapo-888:patch-1

Conversation

@pipapo-888

@pipapo-888 pipapo-888 commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

概要

std::exception のメンバ関数のうち、C++98 版の宣言に例外仕様 throw() が抜けていたため追加しました。

変更内容

以下のページの C++98 の宣言に throw() を追加しています。

  • what()
  • コンストラクタ(デフォルトコンストラクタ、コピーコンストラクタ)
  • 代入演算子
  • デストラクタ

根拠

C++98/03 の規格 18.6.1 [lib.exception] では、exception クラスは次のように宣言されています。

class exception {
public:
  exception() throw();
  exception(const exception&) throw();
  exception& operator=(const exception&) throw();
  virtual ~exception() throw();
  virtual const char* what() const throw();
};

C++11 でこれらの throw() は noexcept に置き換えられたため、既存の C++11 版の宣言とも対応がとれます。

`std::exception::what()` の C++98 版の宣言に、例外仕様 `throw()` が抜けていたため追加しました。

## 変更内容
```diff
- virtual const char* what() const; // (1) C++98
+ virtual const char* what() const throw(); // (1) C++98
```

## 根拠
C++98/03 の規格 18.6.1 [lib.exception] では、`what()` は次のように宣言されています。

    virtual const char* what() const throw();

C++11 で `throw()` が `noexcept` に置き換えられたため、C++11 版の宣言(`noexcept`)とも対応がとれます。
@Raclamusi

Copy link
Copy Markdown
Member

プレビュー生成のコメント投稿に失敗しているようなので、 botのフリして代わりに投稿します。


⚡ プレビュー (HTML) (更新時刻: 2026-10-03 18:57:41 JST)

  • ⫯ Commit: 7759d18
  • プレビューの生成には時間がかかります (3~5分)。進捗状況はこちらをご確認ください。

変更記事一覧

4件の記事が変更されました。

※ソース (.md) に直接変更のあった記事を列挙しています。グローバル修飾や変換規則の変更による変化は考慮していません。

@faithandbrave
faithandbrave merged commit 8b8714a into cpprefjp:master Oct 3, 2026
18 of 20 checks passed
@faithandbrave

Copy link
Copy Markdown
Member

ありがとうございます。マージしました。
@pipapo-888 さんを編集チームに招待させていただきますね。のちほどGitHubから正体の通知が届くと思います。もしよろしければ今後ともよろしくお願いします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants