Является ли этот вызов встроенным объектом функции?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Является ли этот вызов встроенным объектом функции?

Сообщение Anonymous »

В следующем коде Foo::add вызывает функцию через объект функции:

Код: Выделить всё

struct Plus {
inline int operator()(int x, int y) const {
return x + y;
}
};

template
struct Foo {
Fct fct;
Foo(Fct f) : fct(f) {}
inline int add(int x, int y) {
return fct(x,y); // same efficiency adding directly?
}
};
Это такая же эффективность, как вызов x+y непосредственно в Foo::add? Другими словами, обычно компилятор напрямую заменяет fct(x,y) фактическим вызовом, встраивая код при компиляции с включенной оптимизацией?

Подробнее здесь: https://stackoverflow.com/questions/274 ... ct-inlined
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»