トップページ > プログラム > 2016年06月27日 > 0nEjv4u+

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

34 位/234 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000022



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【初心者歓迎】C/C++室 Ver.98【環境依存OK】 [無断転載禁止]©2ch.net

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.98【環境依存OK】 [無断転載禁止]©2ch.net
476 :デフォルトの名無しさん[sage]:2016/06/27(月) 23:04:16.01 ID:0nEjv4u+
#include <iostream>

void print(const std::string& str)
{
 std::cout << str << std::endl;
}

template <typename T>
void print11(T&& str)
{
 std::cout << std::forward<T>(str) << std::endl;
}

int main()
{
 std::string str{"hello world"};
 print(str);
 print11(str);
 return 0;
}

上記のprint関数のようなものを書きたいとき、
C++11時代の書き方ってprint11の書き方になるかと予想したのですがあってますか?

毎度このような記述が必要だなんて、にわかに信じられず
速度が求められる状況の時だけprint11のように書けばよい、ということだったりしないかな、と邪推してしまったのですが
どうでしょうか。

もしくはprint11関数が間違ってるでしょうか。
【初心者歓迎】C/C++室 Ver.98【環境依存OK】 [無断転載禁止]©2ch.net
481 :デフォルトの名無しさん[sage]:2016/06/27(月) 23:36:49.63 ID:0nEjv4u+
>>480
通常版と右辺値参照版の両方をそれぞれ定義したことになるらしいのでこうするとよいと某書籍に書いてあったのですが
正しく理解できてるか自信がなく、
毎回こんなこと書くの面倒だし、自分が読み間違えてるのか確認したく…(´・ω・`)


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