Everybody knows that you can't define function inside other function. I want to argue:
int main(int argc, char **argv) { struct Nested { static void print() { std::cout << __func__ << std::endl; } }; Nested::print(); return 0; }Or you can apply some macros magic:
#define NESTED_FUNCTION_BEGIN(UNIQUE_NAME) \ struct UNIQUE_NAME { static #define NESTED_FUNCTION_END }; int main(int argc, char **argv) { NESTED_FUNCTION_BEGIN(Nested) void print() { std::cout << __func__ << std::endl; } NESTED_FUNCTION_END Nested::print(); return 0; }
No comments:
Post a Comment