Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, Serginio1, Вы писали:
EP>>>Здесь внутри foo, ещё до всяких оптимизаторов, известен и конкретный тип замыкания F, и его размер, и конкретный вызываемый метод.
EP>>>Аналог на C# в студию
S>>S>> T foo<T>(Func<T> f)
S>>{
S>> return f();
S>>}
S>>
EP>О чём и речь — у тебя внутри foo один тип для разных замыканий с одинаковой сигнатурой — а значит динамический полиморфизм и прочие индерекции, которые на порядок сложнее оптимизировать
На данном этапе да.
Но мы то говорим о компиляторе в стиле C++. А там
return x>>
проинлайнить не проблема на уровне исходников. Хотя можно делать некую промежуточный вариант куда будет вставляться IL код.
Главное, что контракт соблюден.