У меня есть набор чисто арифметических функций, вызовы которых определяются не при компиляции, а во время выполнения. Я намеревался создать массив указателей на все из них и обрабатывать их вызовы через индексы массива (например, если (a> 3) вызвать 3-й).
Эти функции будут часто и многократно вызываться в цикле, поэтому для повышения производительности они должны быть встроены.
Мой вопрос: будет ли такой вызов через встроенные указатели функций-членов в конечном итоге встроенным?
Спасибо!
class foo{
private:
int f(int x){return x;}
int (foo::*pf)(int);
public:
foo(){
pf=&foo::f;
(*this.*pf)(3); //will this call be inlined?
f(3); //this call is surely inlined
}
};
int main(){
foo f;
return 0;
}
pf
ссылается наint f(int)
, поэтому он известен во время компиляции. - person David Rodríguez - dribeas   schedule 05.02.2013g++ -S
. Просто говорю'. - person Robᵩ   schedule 05.02.2013