[Pyrex] The "++" operator gets stripped out (as in "++x")
Lenard Lindstrom
len-l at telus.net
Sun Jan 6 21:08:11 CET 2008
This is not as simple as it appears. Pyrex is bases on Python, not C. So
its grammar should be consistent with Python. In Python, the unary '+'
can be overridden. So if x where a Python variable then ++x is
equivalent to +(+x). Now the unary '+' can also be overloaded in C++. So
for future considerations in C++ support shouldn't ++x also translate to
+(+x) for statically cdef'd variables to be consistent with Python grammar.
Lenard Lindstrom
Dan Gindikin wrote:
> This thought occurred to me, but perhaps there ought to at least be a warning in
> this case? It's an easy mistake to make.
>
> John Machin wrote:
>
>> Dan Gindikin wrote:
>>
>>> Hi,
>>>
>>> It appears the "++" prefix operator gets silently stripped out. If you
>>> have the following,
>>>
>>> cdef int x
>>> x=0
>>> ++x # in the .c file, this is just "__pyx_v_x"
>>> print x
>>>
>>> a "0" is printed.
>>>
>>> This is with version 0.9.6.4
>>>
>>>
>>>
>> There is no such thing as a "++" prefix operator in Python and Pyrex
>> (and Pyrex doesn't support x += 1). You have two "+" prefix operators,
>> with the expected result.
>>
>>
>>
>
>
More information about the Pyrex
mailing list