On 08/07/14 20:44, Adriano dos Santos Fernandes wrote:
> Attached I put a refinement with:
> - Alex's default base
> - Rename underline to Impl
> - Automatic version check (done only when necessary)

 From code I see that it takes place on every invocation of every method.

I agree that adding ihterface version directly to VT is right solution. 
But checking it (yes, fast, yes, inline) in every invocation and 
checking so straightforward.  Imagine someone compiled old code with new 
header, tries to use old fbclient <never calling new methods> and gets 
an error in old calls - that's wrong. But I do not see it as a big 
problem - it's not hard to add code for version check (and probably 
upgrade) in correct places.

> - Marks (TODO) for C/C++ exception integration

Yes, and it's definitely also nto abig problem

> With this versioning scheme, IVersioned will die, but I maintained it
> for the demo.
>
> As we don't rely on C++ vtables anymore, it's easy and fast to just
> store the version number in the vtable.

What I see as a problem - what other people think about all this?


------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to