This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

How to use friend functions.


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?



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]