なかだです。

At Wed, 09 Jul 2003 19:23:23 +0900,
Shin-ichiro HARA wrote:
> CLASS_OF(x) って x のクラスを返すと思うのですが、もしかして x 特異
> クラスが出来るとその特異クラスを返すのでしょうか?

そうです。その場合、FL_TEST(CLASS_OF(x), FL_SINGLETON)は真にな
ります。

$ cat single.c
#include <ruby.h>

static VALUE
singleton_p(VALUE obj)
{
    return FL_TEST(obj, FL_SINGLETON) ? Qtrue : Qfalse;
}

void
Init_single()
{
    rb_define_method(rb_mKernel, "singleton?", singleton_p, 0);
}

$ ruby -I. -rsingle -e 'obj = Object.new; p obj.singleton?'
false
$ ruby -I. -rsingle -e 'obj = Object.new; class << obj; p singleton?; end'
true

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦