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