トップページ > プログラム > 2016年06月30日 > I86oszq6

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

11 位/242 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000300002005



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

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.98【環境依存OK】 [無断転載禁止]©2ch.net
525 :デフォルトの名無しさん[sage]:2016/06/30(木) 16:00:56.66 ID:I86oszq6
#include <bits/stdc++.h>

class hoge {
public:
 void aho() { std::cout << "ahooo" << std::endl; }
};

int main()
{
 /*
 hoge h;
 std::thread th(&hoge::aho, h);
 */
 std::thread th(&hoge::aho, std::move(hoge{}));

 th.join();

 return 0;
}

すみません、質問させてください。
右辺値参照の使い方がぼんやりとしかわからず…
スレッドにメンバ関数を渡したいとき一時オブジェクトを作る代わりに右辺値参照を利用する
上記のような使い方は正しい使い方でしょうか。
【初心者歓迎】C/C++室 Ver.98【環境依存OK】 [無断転載禁止]©2ch.net
526 :デフォルトの名無しさん[sage]:2016/06/30(木) 16:25:05.04 ID:I86oszq6
すみません自己解決しました

std::moveなくても右辺値ですね(;´Д`)

#include <bits/stdc++.h>

class hoge {
public:
 hoge(){std::cout << "ctor" << std::endl;}
 hoge(const hoge&){std::cout << "cctor" << std::endl;}
 hoge(hoge&&){std::cout << "mtor" << std::endl;};
 hoge& operator=(hoge&&){std::cout << "mctor" << std::endl; return *this;};
 ~hoge(){std::cout << "dtor" << std::endl;}
 void aho() { std::cout << "ahooo" << std::endl; }
};

int main()
{
 // 出力はどちらも同じ
 std::thread th(&hoge::aho, hoge{});
 //std::thread th(&hoge::aho, std::move(hoge{}));

 th.join();

 return 0;
}
Boost総合スレ part10
311 :デフォルトの名無しさん[sage]:2016/06/30(木) 16:51:13.09 ID:I86oszq6
beginとかendとか書くの面倒だな〜と思ってboost.range.algorithmsを調べてると
途中から|=とかadaptorsとか出てくるのですが
これは同じライブラリの話なのでしょうか?
もしくは全く別の二つのライブラリなのでしょうか?
【初心者歓迎】C/C++室 Ver.98【環境依存OK】 [無断転載禁止]©2ch.net
532 :デフォルトの名無しさん[sage]:2016/06/30(木) 21:06:51.98 ID:I86oszq6
>>529
!?

hoge(hoge&&){std::cout << "mtor" << std::endl;};
ここの引数(今はないけど)が左辺値になってしまうということですか?
std::moveがある場合と比べて余分なコピーが発生するのでしょうか?
質問ばっかですみません。
【初心者歓迎】C/C++室 Ver.98【環境依存OK】 [無断転載禁止]©2ch.net
533 :532[sage]:2016/06/30(木) 21:07:37.99 ID:I86oszq6
左辺値→左辺値参照


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