Cpp 右辺値参照 新しいページはコチラ
提供: yonewiki
(→右辺値参照) |
|||
1行: | 1行: | ||
+ | [[C PlusPlus#C++からの技術|C++]]に戻る | ||
+ | |||
+ | |||
<table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner"> | <table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner"> | ||
<tr> | <tr> | ||
<td style="width:1px;"></td> | <td style="width:1px;"></td> | ||
− | <td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++ 右辺値参照</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td> | + | <td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++(Cpp) 右辺値参照</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td> |
</tr> | </tr> | ||
</table> | </table> | ||
8行: | 11行: | ||
<br /> | <br /> | ||
== '''右辺値参照''' == | == '''右辺値参照''' == | ||
+ | |||
[[Cpp 参照]]の特殊なパターンとして右辺値参照があります。あまり知られていないという点で特殊と記述しましたが、知っているひとからすれば、ごく自然なC++の言語仕様の一部に過ぎないです。 | [[Cpp 参照]]の特殊なパターンとして右辺値参照があります。あまり知られていないという点で特殊と記述しましたが、知っているひとからすれば、ごく自然なC++の言語仕様の一部に過ぎないです。 | ||
34行: | 38行: | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
− | int | + | int nSize; |
int&& rrefnSize = nSize; //これは駄目。 | int&& rrefnSize = nSize; //これは駄目。 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
46行: | 50行: | ||
以下は[[C キャスト | キャスト]]による明示的な右辺値参照代入の指定です。 | 以下は[[C キャスト | キャスト]]による明示的な右辺値参照代入の指定です。 | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
− | int | + | int nSize; |
int&& rrefnSize = static_cast<int&&>(nSize); //これはOK。 | int&& rrefnSize = static_cast<int&&>(nSize); //これはOK。 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
52行: | 56行: | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
− | int | + | int nSize; |
int&& rrefnSize = std::move(nSize); //キャストと同じで、OK。 | int&& rrefnSize = std::move(nSize); //キャストと同じで、OK。 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
311行: | 315行: | ||
− | このプログラムを理解するにはオブジェクト(インスタンス)、ポインタ、nullptr、文字列操作、参照、クラス(コンストラクタ デストラクタ 静的メンバ関数 演算子のオーバロード)を理解しておく必要があります。 | + | ムーブコンストラクタはコピーコンストラクタの引数が通常の参照であったのに対して、元の値をとっておかないような使い方として、引数を右辺値参照型にしているようなコンストラクタになっています。 |
+ | |||
+ | |||
+ | このプログラムを理解するにはオブジェクト(インスタンス)、ポインタ、nullptr、文字列操作、参照、クラス(コンストラクタ デストラクタ 静的メンバ関数 演算子のオーバロード オーバロード インライン関数)を理解しておく必要があります。 | ||
369行: | 376行: | ||
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ | ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | [[C PlusPlus#C++からの技術|C++]]に戻る |