On Mon, Jul 5, 2010 at 7:24 PM, Dag Sverre Seljebotn
<[email protected]> wrote:
> toki doki wrote:
>> On Mon, Jul 5, 2010 at 6:15 PM, Stefan Behnel <[email protected]> wrote:
>>
>>> Dag Sverre Seljebotn, 05.07.2010 10:56:
>>>
>>>> the example toki doki posted gets ugly, as one needs to do
>>>>
>>>> foo = vect.at(4)[0] + 10
>>>>
>>>> to get the equivalent of the C++ "foo = vect.at(4) + 10".
>>>>
>>> What's so ugly about that?
>>>
>>> Stefan
>>> _______________________________________________
>>>
>>
>> Well, I was just concerned that many users might unintentionnally
>> write " foo=vect.at(4)+10 " when they meant " foo=vect.at(4)[0]+10 ".
>> If foo is declared to be an unsigned int or a pointer, there might not
>> be any warning from the compiler. And that could result in a bug very
>> difficult to understand.
>>
>> An (ugly) example:
>>
>> """"""""
>> cdef vector[void **] vect
>> cdef void *foo
>> # Assume that vect has been populated with meaningful pointers
>> foo= vect.at(2)[3]   # foo is equal to  vect[5] instead of vect[2][3]
>> """"""""
>> In the above code, no compiler warnings will tell the user that he did
>> something wrong. It will be very difficult for him to understand what
>> is the problem. One could say that somebody using vectors of void**
>> beg to be punished. Still, it is possible there exist more valid
>> examples.
>>
>> Also, the issue of how to write " *foo=bar " when foo is a general
>> iterator remains. (one cannot write " operator.dereference(foo)=bar
>> ").
>>
> Argh, yes that is a real problem. The easiest way of assigning to items
> in a C++ list<int> would be this?
>
> (&(cython.dereference(my_iterator)))[0] = value
>
> Hmmm...
>
> Dag Sverre
> _______________________________________________
> Cython-dev mailing list
> [email protected]
> http://codespeak.net/mailman/listinfo/cython-dev
>


Actually, that won't even work.

Current cython-devel refuses to take the address of a dereference
call. It complains with a "Taking address of non-lvalue" error.

Toki
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to