[libvirt] [PATCH] util: Make virStringArrayHasString() const-correct

Martin Kletzander mkletzan at redhat.com
Thu Aug 18 19:22:43 UTC 2016

On Wed, Aug 17, 2016 at 10:22:46AM +0200, Erik Skultety wrote:
>On 17/08/16 09:56, Andrea Bolognani wrote:
>> On Tue, 2016-08-16 at 22:31 +0200, Martin Kletzander wrote:
>>>>>> This change means we no longer have to cast arrays of
>>>>>> immutable strings to arrays of mutable strings; we still
>>>>>> have to do the opposite, though, but that's reasonable.
>>>>> Is it? I mean, we are restricting ourselves and compiler fails to see
>>>>> that. To me 'const char **' is more restrictive than 'char **' therefore
>>>>> there should be no typecast required. But this is the discussion I
>>>>> should have with gcc devels. For some reason, gcc does automatic
>>>>> typecasting to const just for the fist level pointers and not the second
>>>>> one. That's why compilers errors out.
>>>> The reason for this behavior is explained in the C FAQ:
>>>>    http://c-faq.com/ansi/constmismatch.html
>>> Just FYI, so that you know why adding more consts (even to sensible
>>> places) doesn't help in C, I found the answer to my question on stack
>>> overflow [1] very satisfactory and explanatory.
>> So the solution is simple: rewrite all of libvirt in C++! ;)

Because one thing makes more sense?  How about ocaml then?

>Patches are welcome ;)...oh, wait... Or we could make a "libvirt
>rationale" and state that some char ** arrays are meant to be constant
>in a textual manner :).
>PS: hopefully nobody took that one seriously.

Which one, though :D
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160818/dfd0c9ce/attachment-0001.sig>

More information about the libvir-list mailing list