Ruby: include/ruby/internal/core/rclass.h File Reference

Ruby 3.4.1p0 (2024-12-25 revision 48d4efcb85000e1ebae42004e963b5d0cedddcf2)

Macros | Functions
rclass.h File Reference

Routines to manipulate struct RClass. More...

`#include "ruby/internal/dllexport.h"`
`#include "ruby/internal/value.h"`
`#include "ruby/internal/cast.h"`

Go to the source code of this file.

## Macros
#define | RCLASS(obj)
| Convenient casting macro.
#define | RMODULE RCLASS
| Just another name of RCLASS.
#define | RCLASS_SUPER rb_class_get_superclass
| Just another name of rb_class_get_superclass.

## Functions
VALUE | rb_class_get_superclass (VALUE klass)
| Returns the superclass of a class.

## Detailed Description

Routines to manipulate struct RClass.

Author
  Ruby developers ruby-.nosp@m.core.nosp@m.@ruby.nosp@m.-lan.nosp@m.g.org

Copyright
  This file is a part of the programming language Ruby. Permission is hereby granted, to either redistribute and/or modify this file, provided that the conditions mentioned in the file COPYING are met. Consult the file for details.

Warning
  Symbols prefixed with either `RBIMPL` or `rbimpl` are implementation details. Don't take them as canon. They could rapidly appear then vanish. The name (path) of this header file is also an implementation detail. Do not expect it to persist at the place it is now. Developers are free to move it anywhere anytime at will.

Note
  To ruby-core: remember that this header can be possibly recursively included from extension libraries written in C++. Do not expect for instance `__VA_ARGS__` is always available. We assume C99 for ruby itself but we don't assume languages of extension libraries. They could be written in C++98.
  The struct RClass itself is opaque.

Definition in file rclass.h.

## Macro Definition Documentation

## ◆ RCLASS

#define RCLASS | ( |  | obj | ) |

Value:
RBIMPL_CAST((struct RClass *)(obj))
RClass
Definition class.h:80

Convenient casting macro.

Parameters

  obj | An object, which is in fact an RClass.

Returns
  The passed object casted to RClass.

Definition at line 38 of file rclass.h.

Referenced by rb_class_get_superclass(), and ruby_vm_destruct().

## ◆ RCLASS_SUPER

#define RCLASS_SUPER rb_class_get_superclass

Just another name of rb_class_get_superclass.

Definition at line 44 of file rclass.h.

Referenced by make_metaclass(), rb_alias(), rb_class_real(), rb_class_superclass(), rb_define_class(), rb_get_alloc_func(), rb_include_module(), rb_mod_ancestors(), rb_mod_const_of(), rb_mod_include_p(), rb_mod_included_modules(), rb_mod_init_copy(), rb_obj_singleton_methods(), and rb_prepend_module().

## ◆ RMODULE

#define RMODULE RCLASS

Just another name of RCLASS.

Definition at line 41 of file rclass.h.