Сообщение Re[8]: «Собаку съел» от 23.01.2017 9:37
Изменено 23.01.2017 10:09 Serginio1
Re[8]: «Собаку съел»
Здравствуйте, samius, Вы писали:
S>Здравствуйте, Serginio1, Вы писали:
S>>Здравствуйте, samius, Вы писали:
S>>>Но это еще не компаратор, это только его сигнатура. Осталось написать параметрически полиморфное тело компаратора и продемонстрировать как оно инлайнится.
S>> То есть
S>>
S>К сожалению, полиморфизма в этой записи я вообще не наблюдаю. Никакого. Где же он?
Это уже специализация. А дженерик метод ты удалил. А там как раз и используется обобщенный вариант
Для С++ это перегрузка оператора
На С++ ты тоже должен сделать перегрузку операторов сравнения
При этом этих вариантов сравнений может быть вагон и маленькая тележка для обычных SQL таблиц.
S>> А как использовать деревья выражений я тебе уже кучу ссылок давал.
S>Я в курсе, что это и как использовать. И работал с ними от момента их появления.
И чем тебе не нравится?
Инлайнинг в рантайме!
Это тебе не кодогенерация при специализации шаблона.
S>Здравствуйте, Serginio1, Вы писали:
S>>Здравствуйте, samius, Вы писали:
S>>>Но это еще не компаратор, это только его сигнатура. Осталось написать параметрически полиморфное тело компаратора и продемонстрировать как оно инлайнится.
S>> То есть
S>>
S>>System.Linq.Expressions.Expression<Func<int,int, int>> expr = (i,x) => i- x;
S>>
S>К сожалению, полиморфизма в этой записи я вообще не наблюдаю. Никакого. Где же он?
Это уже специализация. А дженерик метод ты удалил. А там как раз и используется обобщенный вариант
Для С++ это перегрузка оператора
На С++ ты тоже должен сделать перегрузку операторов сравнения
int operator>(shop v,shop w)
{
if (strcmp (v.madein,w.madein)>0 ||
strcmp (v.proiz,w.proiz)>0 ||
strcmp(v.x.item,w.x.item)>0
) return 1;
return 0;
}
При этом этих вариантов сравнений может быть вагон и маленькая тележка для обычных SQL таблиц.
System.Linq.Expressions.Expression<Func<T,T,int>>
S>> А как использовать деревья выражений я тебе уже кучу ссылок давал.
S>Я в курсе, что это и как использовать. И работал с ними от момента их появления.
И чем тебе не нравится?
Инлайнинг в рантайме!
Это тебе не кодогенерация при специализации шаблона.
Re[8]: «Собаку съел»
Здравствуйте, samius, Вы писали:
S>Здравствуйте, Serginio1, Вы писали:
S>>Здравствуйте, samius, Вы писали:
S>>>Но это еще не компаратор, это только его сигнатура. Осталось написать параметрически полиморфное тело компаратора и продемонстрировать как оно инлайнится.
S>> То есть
S>>
S>К сожалению, полиморфизма в этой записи я вообще не наблюдаю. Никакого. Где же он?
Это уже специализация. А дженерик метод ты удалил. А там как раз и используется обобщенный вариант
Для С++ это перегрузка оператора
На С++ ты тоже должен сделать перегрузку операторов сравнения
При этом этих вариантов сравнений может быть вагон и маленькая тележка для обычных SQL таблиц.
S>> А как использовать деревья выражений я тебе уже кучу ссылок давал.
S>Я в курсе, что это и как использовать. И работал с ними от момента их появления.
И чем тебе не нравится?
Инлайнинг в рантайме!
Это тебе не кодогенерация при специализации шаблона.
S>Здравствуйте, Serginio1, Вы писали:
S>>Здравствуйте, samius, Вы писали:
S>>>Но это еще не компаратор, это только его сигнатура. Осталось написать параметрически полиморфное тело компаратора и продемонстрировать как оно инлайнится.
S>> То есть
S>>
S>>System.Linq.Expressions.Expression<Func<int,int, int>> expr = (i,x) => i- x;
S>>
S>К сожалению, полиморфизма в этой записи я вообще не наблюдаю. Никакого. Где же он?
Это уже специализация. А дженерик метод ты удалил. А там как раз и используется обобщенный вариант
Для С++ это перегрузка оператора
На С++ ты тоже должен сделать перегрузку операторов сравнения
int operator>(shop v,shop w)
{
if (strcmp (v.madein,w.madein)>0) return 1;
if (strcmp (v.madein,w.madein)<0) return 0;
if (strcmp (v.proiz,w.proiz)>0) return 1;
if (strcmp (v.proiz,w.proiz)<0) return 0;
if (strcmp(v.x.item,w.x.item)>0) return 1;
if (strcmp(v.x.item,w.x.item)<0) return 0;
else return 0;
}
При этом этих вариантов сравнений может быть вагон и маленькая тележка для обычных SQL таблиц.
System.Linq.Expressions.Expression<Func<T,T,int>>
S>> А как использовать деревья выражений я тебе уже кучу ссылок давал.
S>Я в курсе, что это и как использовать. И работал с ними от момента их появления.
И чем тебе не нравится?
Инлайнинг в рантайме!
Это тебе не кодогенерация при специализации шаблона.