xnet吧 关注:9贴子:110
  • 2回复贴,共1

[Update] xNET 已经支持普通 new 代替 gcnew

只看楼主收藏回复

经过无数次思考我决定放弃使用一般的 GC 算法,直接用引用计数法。
例子程序:
#include<xnet/core>
#define gcnew(T,...) ((::geelaw::xNET::Core::gcref< T >)new T ( __VA_ARGS__ ))
using namespace geelaw::xNET::Core;
#include<cstdio>
struct SampleObject : virtual Object
{
SampleObject()
{
std::puts("SampleObject::SampleObject()");
}
~SampleObject()
{
std::puts("SampleObject::~SampleObject()");
}
};
int main()
{
gcref<Object> o = new SampleObject();
delete new SampleObject();
gcnew(SampleObject);
}
预期输出:
SampleObject::SampleObject()
SampleObject::SampleObject()
SampleObject::~SampleObject()
SampleObject::SampleObject()
SampleObject::~SampleObject()
SampleObject::~SampleObject()


IP属地:中国香港1楼2014-07-03 16:09回复
    学霸考哪去了


    2楼2014-09-07 17:01
    收起回复