Существует не так много плохого в вашем коде или предположений, за исключением, может быть, что это является важной особенностью списков инициализаторов не навязывать не последовательность ограничений (особенно для C++). Точка с запятой - это оператор секвенирования, поэтому списки инициализаторов вместо этого разделяются запятой.
Если вы не утверждаете, что спецификации являются правильными по определению, я считаю, что здесь спецификация языка неверна. Это частично нарушает важную особенность языка, который является понятием readonly. Проблемы двусмысленности, упомянутые в других ответах, имеют, на мой взгляд, одну единственную причину. Readonly - очень навязчивая функция, и на полпути относительно корректности состязания трудно получить правильное и, что более важно, вредное для стилей кодирования.
То, что вы ищете и, вероятно, найдено в то же время, называется аргументами: https://stackoverflow.com/a/21273185/2712726 Это не то, что вы просили, но приближаетесь.
Кроме того, чтобы быть справедливым, я должен добавить, что есть очень хорошо осведомленные авторы, которые полностью не согласятся с этими взглядами на константную корректность, которую часто имеют разработчики C++. Эрик Липперт, который, по общему признанию, имеет блестящие должности, написал это (ужасающее для разработчиков C++) заявление: https://stackoverflow.com/a/3266579/2712726
После вашего последнего редактирования я понятия не имею, о чем вы спрашиваете. Да, «readonly» применяется во время выполнения CLR. Я не вижу, как это может быть ограничение компилятора. Другие ответы объясняют, почему то, что вы пытаетесь сделать, не имеет никакого смысла. – 2010-12-16 19:09:57
@Cody Grey - * язык ограничение *, нет сборщик ограничение. Компилятор просто реализует язык. – 2010-12-17 01:40:43
@pst: Я сказал: «Я не вижу, как это может быть ограничение компилятора». Я с тобой согласен. – 2010-12-17 01:43:15