Question about INT_PTR and int
Hi,
I have a little question regarding INT_PTR and int.
I want to show the contents of a CArray in a CListCtrl so I've done
something like:
for (INT_PTR i = 0; i < myArray.GetCount(); i++)
{
c_List.InsertItem(i, [...]);
[...]
}
The problem is I get a warning C4244 in InsertItem, because InsertItem
takes an int, so I'm converting an INT_PTR to int.
I know I could get rid of the warning by either changing the index
from INT_PTR to int or by doing an explicit cast, but both "solutions"
have their problems.
If I change the index type and at some point INT_PTR is bigger than
int, I could get and infinite loop (well, actually, the index would
wrap and become <0, so when accessing the array I would get an assert
or something).
And if I do an explicit cast, I would be in the same situation as I am
now, but without warnings.
Actually, I'm quite sure myArray won't be as big as to really have a
problem with this, and if it were, a CListCtrl would not be a good way
to show its contents. But anyway, I would like to know how to deal
with this kind of "type-mismatch". Any ideas?
Thanks
Mikel