Подскажите по порядку вычисления аргументов функции
От: Аноним  
Дата: 20.06.08 08:24
Оценка:
Есть вызов

int pos = ...;
msg.Substring(++pos, msg.Length - pos).Trim();


гарантируется ли стандартом прямой порядок вычисления значений аргументов?

з.ы. вопрос возник, т.к. в плюсах он неопределен (т.е. на усмотрение компилятора)
Re: Подскажите по порядку вычисления аргументов функции
От: Mr.Cat  
Дата: 20.06.08 08:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть вызов

А>
А>int pos = ...;
А>msg.Substring(++pos, msg.Length - pos).Trim();
А>

А>гарантируется ли стандартом прямой порядок вычисления значений аргументов?

Да. При наличии сайд-эффектов и зависимости по данным строго слева направо. http://msdn.microsoft.com/en-us/library/aa691335.aspx.
При отсутствии оных — в любой последовательности http://msdn.microsoft.com/en-us/library/aa691105.aspx. Но это к нашему случаю не относится.
c# порядок выполнения
Re: Подскажите по порядку вычисления аргументов функции
От: nikov США http://www.linkedin.com/in/nikov
Дата: 20.06.08 08:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А>гарантируется ли стандартом прямой порядок вычисления значений аргументов?


Да, гарантируется.

7.4.1 Argument lists
....
During the run-time processing of a function member invocation (§7.4.4), the expressions or variable references of an argument list are evaluated in order, from left to right, as follows:
• For a value parameter, the argument expression is evaluated and an implicit conversion (§6.1) to the corresponding parameter type is performed. The resulting value becomes the initial value of the value parameter in the function member invocation.
• For a reference or output parameter, the variable reference is evaluated and the resulting storage location becomes the storage location represented by the parameter in the function member invocation.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.