Hi Mark,
I agree with your example that if initialization data is passed no parsing of ICE_CONFIG etc. should happen. I disagree on a design level with the choice to give InitializationData a default value, making it the default constructor. What got me was that I wasn't aware that Ice::initialize() would call that version of the constructor (I was just hoping it would call a "normal" version - whatever normal might mean).
So in my opinion the signature should of initialize should be:
Code:
ICE_API CommunicatorPtr initialize(const InitializationData&,
Int = ICE_INT_VERSION);
instead of:
Code:
ICE_API CommunicatorPtr initialize(const InitializationData& = InitializationData(),
Int = ICE_INT_VERSION);
To make the call explicit.
But of course, that's just me, plus changing this at this point probably won't make any sense anyway. Thanks for pointing out the correct section in the manual.
cheers
Michael