WikiDer > Дискриминатор

Discriminator

В распределенных вычислений, а дискриминатор это поле типизированного тега, присутствующее в О, мой бог IDL размеченный союз определения типа и значения, определяющие, какой член объединения выбран в текущем экземпляре объединения.[1][2] В отличие от некоторых традиционных языков программирования, предлагающих поддержку объединений, дискриминатор в IDL не идентичен выбранному имени поля. Вот пример определения типа объединения IDL:

союз регистр переключатель (char) {    кейс 'а':    кейс 'b': короткая ТОПОР;    кейс 'c': длинная EAX;    по умолчанию:  октет AL;};

Эффективная стоимость регистр Тип может содержать AX в качестве выбранного поля, но значение дискриминатора может быть либо «a», либо «b», и оно сохраняется в памяти отдельно. Следовательно, IDL логически отделяет информацию о текущем выбранном имени поля и действующем значении объединения от информации о текущем значении дискриминатора. В приведенном выше примере значение дискриминатора может быть любым из следующих: 'a', 'b', 'c', а также все другие символы, принадлежащие IDL. char типа, так как по умолчанию ветка указанная в примере регистр type также позволяет использовать остальные символы.

Другие языки

В Язык определения интерфейса Microsoft также поддерживает помеченные объединения, что позволяет выбирать дискриминатор через атрибут в ограждающей конструкции или функции.[3]

использованная литература