Проверка отношений переопределенных операторов компилятором
От: naf2000  
Дата: 10.02.11 10:10
Оценка:
Академический вопрос.
Можно ли создать такой компилятор, чтобы он проверял бинарные отношения переопределенных операторов на уровне компиляции, то есть пишем требование рефлексивности:

public static reflexive bool operator ==(A a, A b)
{
  return a.x<b.x;
}


и код не компилируется потому, что reflexive требует истинности (a==a)
аналогично требование симметричности:
symmetric (a==b) == (b==a)
ну и далее: транзитивности, антисимметричности (для строгих неравенств) и проч.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.