First Class Functions in C++
I’ve been working on a library that allows you to treat functions as first class objects in C++. Meaning you can assign to a function. Here’s a download link, and here’s a very simple example:
#include "fcf.h" void foo() { std::cout << "foo\n"; } void bar() { std::cout << "bar\n"; } void main() { foo(); // prints "foo" auto oldFoo = fcf::function(&foo); FCF_ASSIGN(&foo, &bar); foo(); // prints "bar" FCF_ASSIGN(&foo, oldFoo); foo(); // prints "foo" }
If you have ever worked in a language with first class functions, you’ll know that you can do some quite cool stuff with this.