Здравствуйте, nikov, Вы писали:
СЮГ>>1) В языке C# есть такое правило, что если функция объявлена так: void F (ref int x) то фактический параметр x не может быть volatile.
N>Кстати, Вы не знаете, какое обоснование для этого правила?
Насколько я понимаю, запись в volatile-переменную должна вызывать появление некоторого дополнительного кода непосредственно в районе инструкции записи. Ну там memory barrier какой-нибудь взвести и т.п.
Однако в случае ref неизвестно что за переменная с "той" стороны: обычная или volatile. Вот и задано явное ограничение.
Наверняка это можно было обрулить, но я вижу только пути с существенной потерей производительности покамест...