Hi David,
Thanks you for your quick reply :)
Here is my responses to your comments and questions
De : MANNICKE, David
Date d'envoi : mercredi 24 octobre 2012 08:05
À : POIRIER Stephane
Objet : RE: Changes in the C++ API interfaces [SEC=UNCLASSIFIED]Hello Stephane,
I went through the modified header files and I really like the modifications you made!
Here are some comments and questions (in no particular order):
In regards to interfaces and iterators (ArrayIterator and SliceIterator), what do you think
about using an interface which supports following methods:
Next()/Before() or Advance()/Recede() as well as bool Equal(other) and int Compare(other)
Yes it's a possibility => perhaps for version 4.
In the header IArray.h for example you used the following syntax:
getSlicer(int rank) throw
(cdma::Exception)
In
the recent C++ language standard (C++11), the use of exception
specifications as specified
in the preceding version of the standard (C++03) is deprecated. However,
if one wants to specify that a function will never through an exception
then the noexcept
keyword should be used.
If Eugen agree with you I'm ok with you for removing all the throw (cdma::Exception) statements, if it's what you mean.
Just personal curiosity, why did you use the following programming style:
private:
IArray() {}
public:
friend class Array;
Why did you not use the following?
protected:
IArray() {}
It's just for specify the fact that those interfaces can't re-implemented on client side.
ILogicalGroup depends on IContainer which in turn depends on AttributeList which is not an
interface. Is that intended?
Where did you see that ILogicalGroup depends on IContainer ?? IGroup does, in the current version, but IContainer no longer depends on AttributeList. (perhaps I didn't understood your remark...)
Does the header IContainer.h need #include
<cdma/array/impl/Range.h>?
IContainer should not depends of Range.h. I will fix this!
Does the header IKey.h need #include
<cdma/dictionary/plugin/PluginMethods.h>?
Same as previous remark. I will fix this too
Why do interface-headers currently include exception headers?
Ok I will check and remove the inclusion if it's not necessary (no 'throw ( cdma::Exception)' statement in method declarations).
Please let me know if my comments and questions don’t make any sense. I am looking forward
to hear back from you.
Of course all your comments and questions are make sense David ;-)
Thank you for your effort!
Best regards,
David