Как выразить бесконечность в C в расширении ruby - PullRequest
3 голосов
/ 29 октября 2011

Я хочу сделать эквивалент

::Infinity= 1.0/0

в расширении ruby, написанном на C.

До сих пор я придумал

rb_const_set(rb_mKernel, rb_intern("Infinity"), rb_float_new(1.0/0));

, который выдает мне предупреждение компилятора из-за деления на ноль. И

rb_const_set(rb_mKernel, rb_intern("Infinity"), rb_eval_string("1.0/0"));

, что ужасно из-за использования eval.

Что является правильным решением для этого?

1 Ответ

1 голос
/ 29 октября 2011

Я нашел ответ в этом вопросе .

rb_const_set(rb_mKernel, rb_intern("Infinity"), rb_float_new(INFINITY));

Для этого нет предупреждений компилятора.

...