[Moscow.pm] компиляция XS на BSD

Vladimir Timofeev vovkasm на gmail.com
Вс Фев 13 02:31:47 PST 2011


2011/2/13 Ivan Petrov <i.petro.77.00 на gmail.com>:
>
>> > то есть теперь чтобы вычислить в  XS что это ссылка на ссылку надо
>> > пройти по
>> > всем 15 вариантам SVt_*, я правильно понимаю?
>> Нет, не правильно.
>> Посмотрите как макрос SvROK определен ;-)
>>
> эмм а какая разница как он определен? в документации написано "чтобы
> определить является ли данный скаляр ссылкой, используйте SvROK, а чтобы
> определить на какой тип ссылается данная ссылка используйте
> SvTYPE(SvRV(SV*))"
>
> поскольку "ссылку на ссылку" приравняли к "ссылке на IV", то чтобы отделить
> "ссылку на скаляр с интом" от "ссылки на ссылку на массив" теперь надо
> как-то извращаться. причем непонятно как это сделать обратно совместимо
допустим у нас есть SV *sv; // $val = \\5;
тогда:
SvROK(sv) == true
SvIOK(sv) == false
SvROK(SvRV(sv)) == true
SvIOK(SvRV(sv)) == false
SvIOK(SvRV(SvRV(sv))) == true
SvROK(SvRV(SvRV(sv))) == false
Ни раньше, ни сейчас извращаться не надо.

>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>



-- 
Vladimir Timofeev <vovkasm на gmail.com>


Подробная информация о списке рассылки Moscow-pm