This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
How to use friend functions.
- From: Jeffrey Holle <jeff dot holle at verizon dot net>
- To: gcc-help at gcc dot gnu dot org
- Date: Mon, 01 Mar 2004 16:25:11 -0800
- Subject: How to use friend functions.
- Reply-to: jeff dot holle at verizon dot net
I use gcc v3.3.
I'm developing an application in which I want to restrict access to a
member function to everything but 1 function.
I'm attempting to accomplish this by making the method private and my
function a friend, but failing.
The synopsis of the function is:
template<class T1> void putNamespace(const string& name, T1& object);
I attempt to define this function has a friend of CParameter with the
following in the public definition area of this class.
friend void putNamespace(const string& name, CParameter& object);
I've tried to indicate what this function actually is (a template), but
run into compiler errors.
It compiled the shared library that I'm defining it in, but when I
attempt to compile a client that uses it like:
putNamespace("std",myParameter);
I get errors associated with putNamespace attempting to a private method
of CParameter, which it does!
I've backed off from the template as an experiment. In defining
putNamespace to take a second parameter of "CParameter", I get these
compilation errors in compiling my shared library.
Can anybody tell me what I'm doing wrong?