🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.c++
Article #3494

Returning void

#3494
From: 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
]
Technical Details
Message-ID: <199602250134.SAA02280@ncar.ucar.EDU>
Path: arc1-ca.pugleaf.net!engnews1.Eng.Sun.COM!taumet!clamage

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!engnews1.Eng.Sun.COM!taumet!clamage
From: bs@research.att.com
Newsgroups: comp.std.c++
Subject: Returning void
Date: 25 Feb 1996 16:44:40 GMT
Organization: ?
Approved: clamage@eng.sun.com (comp.std.c++)
Message-ID: <199602250134.SAA02280@ncar.ucar.EDU>
NNTP-Posting-Host: taumet.eng.sun.com
Content-Type: text
Content-Length: 1786
Originator: clamage@taumet