■23658 / inTopicNo.1) |
CountableObjectって何処に定義されていますか? |
□投稿者/ ネタ好き未記入 (39回)-(2008/08/20(Wed) 09:14:18)
|
分類:[.NET 全般]
早速Boostで躓いてしまいましたorz
引用元:http://www.kmonos.net/alang/boost/classes/intrusive_ptr.html
#include <vector>
#include <iostream>
#include <boost/intrusive_ptr.hpp>
using namespace std;
using namespace boost::intrusive_ptr;
class SharedObject
{
public:
SharedObject() : ref_count(1) {}
int AddRef() { return ++ref_count; }
int Release() {
if( 0 == --ref_count ) delete this;
return ref_count;
}
void Hello()
{
cout << "hello." << endl;
}
private:
int ref_count;
};
void intrusive_ptr_add_ref( CountableObject* ptr )
{
ptr->AddRef();
}
void intrusive_ptr_release( CountedObject* ptr )
{
ptr->Release();
}
int main()
{
typedef boost::intrusive_ptr<SharedObject> Ptr;
Ptr p = Ptr(new SharedObject,false);
vector< Ptr > v;
// vectorに入れたり。
v.push_back( Ptr(new SharedObject,false) );
v.push_back( Ptr(new SharedObject,false) );
v.push_back( Ptr(new SharedObject,false) );
v.push_back( p );
p->Hello();
// pはさっき他にコピーしたけれど、まだここからも参照可能。
return 0;
} // ここで全てdeleteされる。
上記のサンプルコードをコンパイルしようとすると・・・
error C2065: 'CountedObject' : 定義されていない識別子です。
とエラーが出てしまいます。
このCountedObjectなるものを探しましたがどうしても判りませんでした。
Boostに詳しいしい人、お手数ですがこの型について教えて下さい。
よろしくお願い足します。
|
|