Skip to content

feat(integer_sequence): integer_sequenceに関するテンプレートパラメータ制約と備考を追加#1610

Open
teruyamato0731 wants to merge 1 commit intomasterfrom
feat/integer_sequence-mandating
Open

feat(integer_sequence): integer_sequenceに関するテンプレートパラメータ制約と備考を追加#1610
teruyamato0731 wants to merge 1 commit intomasterfrom
feat/integer_sequence-mandating

Conversation

@teruyamato0731
Copy link
Copy Markdown
Contributor

概要

std::integer_sequence のテンプレートパラメータ T に関する制約について、C++17からC++20にかけての仕様変更(Mandates: への厳格化)を追記します。

変更の背景

C++20における標準ライブラリの要件記述の見直し(P1460R1)により、T が整数型であることの要件が shall be から Mandates に変更されました。

C++17(N4659)

T shall be an integer type.

C++20(N4861)

Mandates: T is an integer type.

これにより、C++20以降では T に整数型以外を渡した場合にコンパイラが確実に診断メッセージ(エラー)を出すこと(static_assert 等によるハードエラー)が規格で要求されるようになりました。
実際のコンパイラ(GCC等)でも、C++20モードから static_assert(is_integral_v<T>); が発動するように実装が変更されているため、ユーザー向けの注意喚起として備考に追記しました。

GCCによる実装:

#if __cplusplus >= 202002L
      static_assert(is_integral_v<_Tp>);
#endif

参考

@github-actions
Copy link
Copy Markdown
Contributor

プレビュー (HTML) (更新時刻: 2026-04-13 01:37:08 JST)

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

変更記事一覧

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

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

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.

1 participant