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.htmlJust 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 :). Erik PS: hopefully nobody took that one seriously.
Which one, though :D
Attachment:
signature.asc
Description: Digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list