[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/14 14:02 / Filesize : 217 KB / Number-of Response : 865
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part71



749 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 15:32:03 ]
>>747こうすると、shared_ptrに捕まえられたファンクタがfに代入される。ただ、F()でF()のファンクタを作る意味がないけど。さらにfで保持すると参照カウンタが0にならなくなる。
ファンクタを作りたいなら、mainで bind(&Derived::F,d)とすればすむ筈。
#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/function.hpp>
typedef boost::function< void () > func_t;
class Base
{
public:
void N(){};
};
class Derived :public Base,
public boost::enable_shared_from_this< Derived >
{
public:
void F()
{
f = boost::bind( &Derived::F, this->shared_from_this() );
};
func_t f;
};
int main()
{
boost::shared_ptr< Derived > d( new Derived );
d->F();
func_t x=boost::bind(&Derived::F,d);
return 0;
}







[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<217KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef