Examine this code snippet. Will your compiler accept it?
void a_func_returning_void();void func(){ return a_func_returning_void(); //returning a value from a void function?}
At present, most compilers will not accept this code although it’s perfectly legal according to the ANSI/ISO C++ standard. The problem is that until recently, returning an expression from a function that returns void was an error, even if the returned expression itself was void (as in the example above). This restriction was changed so a function with a void return type may return an expression that evaluates to void. This change was required to enable better support of generic algorithms in the Standard Template Library.