Search⌘ K
AI Features

Functions and Function Objects

Explore the differences and uses of functions and function objects in C++. Understand how function objects can hold state and be instantiated, and discover predefined function objects in the standard library to customize behavior in your code.

Functions

Functions are the simplest callables. They can have - apart from static variables - no state. Because the definition of a function is often widely separated from its use or even in a different translation unit, the compiler has fewer opportunities to optimize the resulting code.

C++
#include <iostream>
#include <vector>
#include <algorithm>
void square(int& i) { i = i * i; }
int main(){
std::vector<int> myVec{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::for_each(myVec.begin(), myVec.end(), square);
for (auto v: myVec) std::cout << v << " "; // 1 4 9 16 25 36 49 64 81 100
return 0;
}

Function Objects

At first, don’t call them functors. That’s a well-defined term from the category theory.

Function objects are objects that ...