Anonymous objects in C++
Posted by: nico on
Dec 20th, 2011 |
Filed under: C++
There are not many cases in which you can have an anonymous *anything* in your code, yet there’s an idiom in C++ which lets you use an object with an anonymous type. Like this:
void foo()
{
struct {
int x;
};
}
Why would this be useful, you may ask. That’s a valid question. This idiom can be very useful to write callbacks, like this:
struct Interface {
void callback() = 0;
};
void bar(Interface &c);
void foo()
{
struct : public Interface {
/* ... */
} x;
bar(x);
}
I am not aware of many other uses for an anonymous type. Even more considering this idiom can now be replaced with a much cleaner lambda. But hey, it looks cool!


Be the first! 

