Returning a void Expression from a void Function

Returning a void Expression from a void Function

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.


Share the Post: