On 22 Jul, 00:48, Jerry Coffin <jcof...@taeus.comwrote:
In article <f7oemh$jd...@news.datemas.de>, v.Abaza...@comAcast.net
says...
Bruintje Beer wrote:
I have a question about log4cxx. How do I make a new appender class
Probably something like
appender* p = new appender;
Beyond that, ask in a forum dedicated to 'log4cxx'.
That would create a new appender object. A new appender class would be
something like:
class new_appender : public appender {
// ...
};
You could do with something to append and something to append to,
perhaps something like:
#include <iostream>
#include <string>
template <typename Data, typename Prev=void>
class appender{
public:
appender( Data d_in, Prev p_in): d(d_in),p(p_in){}
Data d;
Prev p;
};
template<typename Data >
class appender<Data, void>
{
public:
appender(Data d_in): d(d_in){}
Data d;
};
template<typename D, typename N>
std::ostream & operator << (std::ostream & os,appender<D,Nconst & a)
{
return os << a.p << ' ' << a.d ;
}
template<typename D>
std::ostream & operator << (std::ostream & os,appender<D,voidconst &
a)
{
os << a.d;
return os;
}
template <typename Existing,typename D>
appender<D,Existing>
append( Existing const & e,D const & d)
{
return appender<D,Existing>(d,e);
}
int main()
{
std::cout << append(
append(appender<std::string>("hello"),'&'),std::st ring("goodbye")
) <<'\n';
}
regards
Andy Little