// -*- c++ -*- /* Do not edit! -- generated file */ #ifndef ALGO_BITS_IMPL_MEMORY_H #define ALGO_BITS_IMPL_MEMORY_H namespace algo { template struct _delete { template struct _ { typedef void return_t; }; _delete(Ftor ftor) : m_ftor(ftor) {} template typename _::return_t operator () (Arg0& arg0) { delete m_ftor(arg0); } template typename _::return_t operator () (const Arg0& arg0) { delete m_ftor(arg0); } Ftor m_ftor; }; template struct _new0 { template struct _ { typedef Type* return_t; }; template typename _::return_t operator () (Arg0& arg0) { return new Type; } template typename _::return_t operator () (const Arg0& arg0) { return new Type; } }; template struct _new1 { template struct _ { typedef Type* return_t; }; _new1(P1 p1) : m_p1(p1) {} template typename _::return_t operator () (Arg0& arg0) { return new Type(m_p1(arg0)); } template typename _::return_t operator () (const Arg0& arg0) { return new Type(m_p1(arg0)); } P1 m_p1; }; template struct _new2 { template struct _ { typedef Type* return_t; }; _new2(P1 p1,P2 p2) : m_p1(p1),m_p2(p2) {} template typename _::return_t operator () (Arg0& arg0) { return new Type(m_p1(arg0),m_p2(arg0)); } template typename _::return_t operator () (const Arg0& arg0) { return new Type(m_p1(arg0),m_p2(arg0)); } P1 m_p1; P2 m_p2; }; template struct _new3 { template struct _ { typedef Type* return_t; }; _new3(P1 p1,P2 p2,P3 p3) : m_p1(p1),m_p2(p2),m_p3(p3) {} template typename _::return_t operator () (Arg0& arg0) { return new Type(m_p1(arg0),m_p2(arg0),m_p3(arg0)); } template typename _::return_t operator () (const Arg0& arg0) { return new Type(m_p1(arg0),m_p2(arg0),m_p3(arg0)); } P1 m_p1; P2 m_p2; P3 m_p3; }; template struct _new4 { template struct _ { typedef Type* return_t; }; _new4(P1 p1,P2 p2,P3 p3,P4 p4) : m_p1(p1),m_p2(p2),m_p3(p3),m_p4(p4) {} template typename _::return_t operator () (Arg0& arg0) { return new Type(m_p1(arg0),m_p2(arg0),m_p3(arg0),m_p4(arg0)); } template typename _::return_t operator () (const Arg0& arg0) { return new Type(m_p1(arg0),m_p2(arg0),m_p3(arg0),m_p4(arg0)); } P1 m_p1; P2 m_p2; P3 m_p3; P4 m_p4; }; } #endif