Универсальный класс с двумя неравными (уникальными) типами

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

Если это не так, это потому, что он не реализован или потому что это было бы невозможно с учетом языковой структуры (наследования)?

Мне бы хотелось что-нибудь в форме:

class BidirectionalMap where T1 != T2
{
  ...
}

Я реализую Двунаправленный словарь . Это в основном вопрос любопытства, а не необходимости.


Перефразируя комментарии:

  1. Дэн: «Каковы отрицательные последствия, если это ограничение не выполняется?»

  2. Я: «Тогда пользователь мог бы индексировать с помощью map [ t1] и map [t2]. Если бы они были одного и того же типа, не было бы никакого различия, и это не имело бы никакого смысла »

  3. Дэн: Компилятор фактически позволяет [двум параметрам универсального типа определять различные перегрузки методов] , поэтому мне любопытно; он произвольно выбирает один из методов для вызова?

7
задан Community 23 May 2017 в 12:16
поделиться