Re[43]: benchmark
От: pilgrim_ Россия  
Дата: 14.01.17 14:38
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Я имел в виду как раз инлайнинг, точнее его потенциальную возможность (а осуществлять его или нет компилятор решает сам в зависимости от вида функции — для мелких можно считать гарантированно заинлайнит).


Ну т.е. я тебя правильно понял и речь была о замене косвенного вызова (виртуального) на прямой?

_>Но даже если говорить про прямой вызов, то как по твоему компилятор C# будет способен это сделать, если там всегда можно написать такой код (где B и C наследники A; а f — виртуальная функция, переопределённая в них):

_>
_>A a;
_>if(х) a=new B();
_>else a=new C();
_>a.f();
_>

_>Как по твоему компилятор сможет подставить здесь прямой вызов? )

Ессно никак, и будет виртуальный вызов, так же как и в C++ я думаю, ведь это чисто полиморфный код, нет?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.