Using Lambdas in C++: Listing 1

Function variables in C.

// declarations of image saving functions in different formats.
int saveAsPNG(Image image, char* filepath) {

int saveAsGIF(Image image, char* filepath) {

int saveAsTIFF(Image image, char* filepath) {

int saveAsJPG(Image image, char* filepath) {

enum ImageType {Png, Gif, Tiff, Jpg};

// saveImageFunction_t is a pointer to a function that receives an image 
// and a filepath and returns int.
typedef int (*saveImageFunction_t)(Image image, char* filepath);

// saveFunctions is an array of the previous pointer to function type.
// Notice the order of initialization, similar to the enumation ImageType.
saveImageFunction_t saveFunctions[4] = {saveAsPNG, saveAsGIF, saveAsTIFF, saveAsJPG};

// the following line dereference the pointer and calls the JPG save function.
(*saveFunctions[Jpg])(im, "my_image");

About the Author

Diego Dagum is a software architect and developer with more than 20 years of experience. He can be reached at

comments powered by Disqus


.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events