サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
joynote.hatenadiary.org
Boost.CoroutineがBoost 1.55で新しいインターフェイスを搭載したとの事なので、何をどう書けばどう動くかを書いてみます。 pull_type/push_type? 今までのBoost.Coroutineは何か良く分からないシグネチャを持ったcoroutine関連らしきクラスを引数として、それを双方向にぐにゃぐにゃやる必要があって非常に面倒でした。 しかし流石に、作者の人も使いにくいのが分かっていたらしく、今回大幅に整理してくれたようです。 まず、双方向なアクセスが出来たクラス(caller_type)を廃止し、値を外に返す側(push_type)と値を取ってくる側(pull_type)の片方向x2に変更されました。 基本的には、 // 値を渡す側 boost::coroutines::coroutine<渡したい値の型>::push_type // 値を受け取る側 bo
bindが今までイマイチ理解できてなかったけど、書いてみたら一発で理解。 要は、function(関数ポインタ/関数オブジェクト/ラムダ式)の引数を束縛して新しいfunctionオブジェクトを生成してるのね。 #include <functional> #include <iostream> using namespace std; void Func(int a, int b) { cout << a*b << endl; } int main(){ // intの引数1つのfunction function<void (int)> func; // int引数2つのfunctionの片方を定数(3)で束縛して、int引数1つのfunctionに入れる func = bind(Func,placeholders::_1,3); // 動く func(4); return 0; } 出力結
VS2010(VC10)にて関数で返す値についての扱いをついったーで突っ込まれて実際書いて確かめた時のメモ。 #include <iostream> #include <vector> #include <boost/timer.hpp> struct Test{ std::vector<int> tmp; Test(){ std::cout << "コンストラクタ" << std::endl; } ~Test(){ std::cout << "デストラクタ" << std::endl; } Test(const Test& obj) : tmp( obj.tmp ){ std::cout << "コピーコンストラクタ" << std::endl; } Test(Test&& obj){ std::swap(tmp,obj.tmp); std::cout << "ムーブコンストラクタ" <
このページを最初にブックマークしてみませんか?
『joynote.hatenadiary.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く