A container class with the following interface:
template <typename T> class DynArray {
  /// Returns the number of elements in the array.
  inline size_t GetCount();
  /// Releases the internal memory from the \class DynArray
  /// and returns it. The memory must be deallocated manually.
  inline T* Release();
}
In a function call like
SomeFunction(arr.GetCount(), arr.Release())
I would have expected arr.GetCount() to be called before arr.Release(), but the reverse seems to actually happen causing the first parameter to be passed a value of 0 instead of the actual array size. I'm using Visual Studio 2012.
Does the C++ standard say anything specific about order of execution when evaluating function parameters?
 
    