🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by bs Sun, 25 Feb 1996 16:44
Returning void
#3494
Author: bs
Date: Sun, 25 Feb 1996 16:44
40 lines
2199 bytes
Paul D. DeRocco <pderocco@ix.netcom.com> writes:

 > The C++ standard doesn't allow a return statement with an expression to 
 > be used in a function whose return type is void.
 > 
 > I suggest that it should be legal to return a void expression from a 
 > function whose type is void. Why? It can be useful in templates. 
 > Consider the following:
 > 
 >     template <class T, class R> class Functor {
 >     public:
 >         R& operator()() { return (obj.*mem)(); }
 >         Functor(T& o, R& (T::*m)()): obj(o), mem(m) {}
 >     private:
 >         T& obj;
 >         R& (T::*mem)();
 >     }
 > 
 > This defines a functor containing a pointer to an object to be operated 
 > on, and a pointer to a member function defined for that object. It 
 > should work for any member function that takes no arguments and returns 
 > a result. Unfortunately, it won't work for a member function that 
 > returns void. If return were modified as described above, this function 
 > template would work for member functions that return void as well.

I have written a note to the committee formally proposing this. The reason
stated was roughly the one above. In addition - and for the same reason -
I proposed to allow an expression of type void to be used as the argument
of a function taking no argument.

There is no guarantee that the committee will accept this or even that the
committee will consider it (though clearly I think the committee ought to).

	- Bjarne
[ To submit articles: Try just posting with your newsreader.
		      If that fails, use mailto:std-c++@ncar.ucar.edu
  FAQ:    http://reality.sgi.com/employees/austern_mti/std-c++/faq.html
  Policy: http://reality.sgi.com/employees/austern_mti/std-c++/policy.html
  Comments? mailto:std-c++-request@ncar.ucar.edu
]
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads