2013/11/24 Thiago Macieira <[email protected]>:
> On sábado, 23 de novembro de 2013 14:31:42, Yoonsoo Kim wrote:
>> I don't think so because a virtual member function is translated into an
>> index to vtable at compile-time in C++ according to my knowledge. It breaks
>> BC in Java where a virtual member function name is translated into the real
>> function call at run-time. Due to this difference, Java and C++ has pros and
>> cons in their polymorphism implementations. Please, let me know if I'm
>> wrong.
>
> Changing the name but not the parameters of a virtual C++ function is binary
> compatible, but *source* incompatible. It means old code will fail to compile
> since it won't be able to find the function that it tried to.
>
> This would be useful if you were to replace a virtual function that users are
> calling with a front-end non-virtual wrapper, which then calls the virtual.
> Existing code would continue calling the virtual, new code would call the non-
> virtual front-end.
>
> However, note that code that derived from this class and overrode the function
> will need to be adapted anyway. If you do nothing, the derived classes will be
> breaking binary compatibility by adding a new virtual when they get
> recompiled.
>
> As a C++ expert, I recommend you do not do this. Doing that should be left to
> people who really know what they're doing, and only under exigent
> circumstances.

I already know exactly what you mean and the point which you mention here is
reviewed during ACR review. The practice not to do that is already in place.

>> > For further reading I recommend quite comprehensive document
>> > http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++.
>> > It's an effect of many years of experience of developing libraries with
>> > BC in mind.
>>
>> I've read it before but will read it again for updates. This article is
>> pretty famous in C++ programming community, isn't it?
>
> And you've got its author here (me).

I'm really happy to have you here. :)
I'll link to the above article when I make the pdf into a wiki page.

BR,
Yoonsoo
> --
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel Open Source Technology Center
>
_______________________________________________
Dev mailing list
[email protected]
https://lists.tizen.org/listinfo/dev

Reply via email to