トップページ > プログラム > 2014年08月29日 > kA47mpnV

書き込み順位&時間帯一覧

5 位/248 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000105118



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part114

書き込みレス一覧

C++相談室 part114
30 :デフォルトの名無しさん[sage]:2014/08/29(金) 19:44:34.98 ID:kA47mpnV
右辺値参照のコードって微妙にもどかしくない?
template <typename T>
void func(T&& t);
ってやって T自身が右辺値の場合も左辺値参照の場合も包括的に扱えるのはいいんだけど、
それをたとえば int に限定したいとかが楽にできない。
C++相談室 part114
33 :デフォルトの名無しさん[sage]:2014/08/29(金) 21:25:54.23 ID:kA47mpnV
>>32
template <typename T>
void func(T&& t)
{
なんたらかんたら
std::forward<T>(t);
}

ってよくやるだろうが。
何のための完全転送だよ?
C++相談室 part114
35 :デフォルトの名無しさん[sage]:2014/08/29(金) 21:37:05.38 ID:kA47mpnV
>>34
std::forward_as_tuple
C++相談室 part114
36 :デフォルトの名無しさん[sage]:2014/08/29(金) 21:39:02.27 ID:kA47mpnV
>>34
ん?「非」const左辺値参照渡し?

どっから「非」が出てきた?
C++相談室 part114
37 :デフォルトの名無しさん[sage]:2014/08/29(金) 21:47:16.74 ID:kA47mpnV
>>34
std::make_tuple
std::tuple_cat
std::make_unique
std::make_shared
C++相談室 part114
39 :デフォルトの名無しさん[sage]:2014/08/29(金) 21:56:36.69 ID:kA47mpnV
>>34
vector::emplace_back
とかいろいろあるな。自分でも調べてみたら?

そもそも T&& 以外に何を使うってんだ...
C++相談室 part114
42 :デフォルトの名無しさん[sage]:2014/08/29(金) 22:59:29.49 ID:kA47mpnV
>>41
>vector自体は左辺値でも右辺値でも完全転送する必要がある

それで十分じゃないか。
引数がふたつ以上あって、それぞれ右辺値だったり左辺値だったりする時のことを考えてみれば?
C++相談室 part114
43 :デフォルトの名無しさん[sage]:2014/08/29(金) 23:30:35.43 ID:kA47mpnV
>>41>>32>>34

テンプレートで何か受け取る : 右辺値か左辺値かconstか非constか しかも複数別々
  何かする
    下に転送
       ↓
受け取る:右辺値か左辺値かconstか非constか不明
  何かする
     下に転送
        ↓
        ・・・
 ↓     ↓     ↓
 T&    constT&  T&&  それぞれオーバーロードして処理

左辺値か右辺値か意味の違いで区別はするが、それは最後の段階でやること多いよ。
その前の段階では一律 T&& になる。
必要になる理由のひとつがこれ。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。