Skip to content

Commit

Permalink
Added new documentation for P2169R4
Browse files Browse the repository at this point in the history
  • Loading branch information
rotarymars committed Dec 20, 2024
1 parent 10ebad2 commit f579e2f
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lang/cpp26.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
| 言語機能 | 説明 |
|----------|------|
| [`std::initializer_list`の配列を静的ストレージに配置する](/lang/cpp26/static_storage_for_braced_initializers.md.nolink) | `std::vector v = {1, 2, 3};`のような初期化で初期化子リストを静的ストレージに配置することで無駄なコピーをなくす |
| [宣言のみで使用しない変数の名前として`_`をサポート](/lang/cpp26/nice_placeholder_with_no_name.md.nolink) | 変数名`_`は暗黙で`[[maybe_unused]]`が指定される |
| [宣言のみで使用しない変数の名前として`_`をサポート](/lang/cpp26/nice_placeholder_with_no_name.md) | 変数名`_`は暗黙で`[[maybe_unused]]`が指定される |
| [非推奨となっていた列挙型の算術変換を削除](/lang/cpp26/remove_deprecated_arithmetic_conversion_on_enumerations.md) | C++20から非推奨となっていた列挙値への算術演算で算術型に暗黙変換される仕様を削除 |
| [不完全型へのポインタに対する`delete`を不適格とする](/lang/cpp26/deleting_a_pointer_to_an_incomplete_type_should_be_ill-formed.md.nolink) | 未定義動作を引き起こす操作をコンパイルエラーとする |
| [返却された左辺値から暗黙変換された一時オブジェクトが参照に束縛されることを禁止する](/lang/cpp26/disallow_binding_a_returned_glvalue_to_a_temporary.md.nolink) | 寿命切れの変数によって引き起こされるバグを防止する |
Expand Down
31 changes: 31 additions & 0 deletions lang/cpp26/nice_placeholder_with_no_name.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 宣言のみで使用しない変数の名前として_をサポート [P2169R4]
* cpp26[meta cpp]

<!-- start lang caution -->

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

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

<!-- last lang caution -->

## 概要
C++17で採用された、`[[maybe_unused]]`属性を変数名`_`の場合、自動的につける。

```cpp
int main() {
[[maybe_unused]]int hardNamingVariable;
// gccやclangの場合、-Wallオプションをつけると、
// 変数が未使用だった場合、警告が出力される。
// [[maybe_unused]]属性によって、これを抑制することができた。
// しかし、今後は、変数名が_であれば、自動的にその属性が適用されるようになる。
int _;
// このコードを-Wallでコンパイルしても、警告は表示されない。
}
```

## <a id="relative-page" href="#relative-page">関連項目</a>
- [\[\[maybe_unused\]\]属性 \[P0212R1\]](/lang/cpp17/maybe_unused.html)

## 参照
- [P2169R4 A nice placeholder with no name](https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2169r4.pdf)

1 comment on commit f579e2f

@faithandbrave
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.