Wow, I hope this makes sense to somebody. Personally I wouldn’t know if my template expansion was different to my library build expansion!
Perhaps this reply was intended to log4cxx userlist instead? :-) > -----Original Message----- > From: Curt Arnold [mailto:[EMAIL PROTECTED] > Sent: 15 March 2005 22:15 > To: Log4J Users List > Subject: Re: Build namespace issues > > On Mar 15, 2005, at 3:31 PM, Ron Ohmer wrote: > > > I ran into a rather odd error when using SocketAppenders. > > > > I have a wrapper that has worked fine, no warnings, nothing until I > > added functionality for the SocketAppender.. > > > > Now I get what follows this.. Does anyone know the root of this > > (Other than SocketAppender.cpp.. :-)) BTW, VS.NET 2k3 is the build > > tool. > > > > The problem is that pervasively throughout log4cxx (even the CVS HEAD), > you see a construct like: > > class SocketImpl; > typedef helpers::ObjectPtrT<SocketImpl> SocketImplPtr; > > When one of these smart-pointer templates is used in a publicly exposed > method on a exported class, you end up with an exported method > depending on a non-exported class. If the template expansion differs > in any way from the expansion when the library was build, bad things > will happen hence the warning. > > What should be done is something like: > > class SocketImpl; > class LOG4CXX_EXPORT SocketImplPtr : public > helpers::ObjectPtrT<SocketImpl> { > ... > } > > I'll log this as a bug and work on it as soon I finish my current task > (likely 24-48 hours away). > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]