Ruby
3.4.0dev (2024-11-22 revision 37a72b0150ec36b4ea27175039afc28c62207b0c)
|
Public APIs related to rb_mComparable. More...
#include "ruby/internal/attr/cold.h"
#include "ruby/internal/attr/noreturn.h"
#include "ruby/internal/dllexport.h"
#include "ruby/internal/value.h"
Go to the source code of this file.
Functions | |
int | rb_cmpint (VALUE val, VALUE a, VALUE b) |
Canonicalises the passed val , which is the return value of a <=> b , into C's {-1, 0, 1} . More... | |
void | rb_cmperr (VALUE a, VALUE b) |
Raises "comparison failed" error. More... | |
Public APIs related to rb_mComparable.
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. __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. Definition in file compar.h.
Raises "comparison failed" error.
[in] | a | Comparison LHS. |
[in] | b | Comparison RHS. |
rb_eArgError | a and b are not comparable each other. |
Definition at line 28 of file compar.c.
Referenced by rb_cmpint(), and rb_num_coerce_relop().
Canonicalises the passed val
, which is the return value of a <=> b
, into C's {-1, 0, 1}
.
This can be handy when you implement a callback function to pass to qsort(3)
etc.
[in] | val | Return value of a space ship operator. |
[in] | a | Comparison LHS. |
[in] | b | Comparison RHS. |
rb_eArgError | a and b are not comparable each other. |
-1 | val is less than zero. |
0 | val is equal to zero. |
1 | val is greater than zero. |