diff --git a/algo/bits/common.h b/algo/bits/common.h deleted file mode 100644 index b66bbc5d..00000000 --- a/algo/bits/common.h +++ /dev/null @@ -1,157 +0,0 @@ -#ifndef ALGO_COMMON_H -#define ALGO_COMMON_H - -namespace algo { - -struct _nil { -}; - -struct _one { - char c[1]; -}; - -struct _two { - char c[2]; -}; - -template -struct tmpl_if; - -template -struct tmpl_if { - typedef Then result; -}; - -template -struct tmpl_if { - typedef Else result; -}; - -template -struct traits { - enum { - REF = false, - CONST = false - }; - - typedef T orig_t; - typedef T type_t; - typedef T& ref_t; - - typedef T b_orig_t; - typedef T b_type_t; - typedef T& b_ref_t; - - typedef const T c_orig_t; - typedef const T c_type_t; - typedef const T& c_ref_t; -}; - -template -struct traits { - enum { - REF = true, - CONST = false - }; - - typedef T& orig_t; - typedef T type_t; - typedef T& ref_t; - - typedef T& b_orig_t; - typedef T b_type_t; - typedef T& b_ref_t; - - typedef const T& c_orig_t; - typedef const T c_type_t; - typedef const T& c_ref_t; -}; - -template -struct traits { - enum { - REF = false, - CONST = true - }; - - typedef const T orig_t; - typedef const T type_t; - typedef const T& ref_t; - - typedef T b_orig_t; - typedef T b_type_t; - typedef T& b_ref_t; - - typedef const T c_orig_t; - typedef const T c_type_t; - typedef const T& c_ref_t; -}; - -template -struct traits { - enum { - REF = true, - CONST = true - }; - - typedef const T& orig_t; - typedef const T type_t; - typedef const T& ref_t; - - typedef T& b_orig_t; - typedef T b_type_t; - typedef T& b_ref_t; - - typedef const T& c_orig_t; - typedef const T c_type_t; - typedef const T& c_ref_t; -}; - -// Helper function used to generate an instantated type for typeof -// calls. -template -T _makeT(); - -template -struct _op_assign; - -// This class acts like a wrapper identifying classes that -// are compatible with the algo structure. -template -struct _wrapper { - - template - struct _ { - typedef typeof(_makeT()(_makeT())) return_t; - }; - - _wrapper(Ftor ftor) : m_ftor(ftor) {} - - template - typename _::return_t operator () (Arg0& arg0 = _nil()) { - return m_ftor(arg0); - } - -// template -// typename _::return_t operator () (const Arg0& arg0) { -// return m_ftor(arg0); -// } - - template - inline _wrapper<_op_assign > - operator = (_wrapper w) { - return make_wrapper(_op_assign(m_ftor, w.m_ftor)); - } - - Ftor m_ftor; -}; - -template -inline _wrapper -make_wrapper(Ftor ftor) { - return _wrapper(ftor); -} - -} - -#endif diff --git a/algo/bits/impl_call.h b/algo/bits/impl_call.h deleted file mode 100644 index eeb715c1..00000000 --- a/algo/bits/impl_call.h +++ /dev/null @@ -1,314 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - -#ifndef ALGO_BITS_IMPL_CALL_H -#define ALGO_BITS_IMPL_CALL_H - -namespace algo { - -template -struct _ptr_fun0 { - - template ::REF> - struct _ { - typedef Ret return_t; - }; - - template - struct _ { - typedef const Ret return_t; - }; - - _ptr_fun0(Func func) : - m_func(func) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return m_func(); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return m_func(); - } - - Func m_func; - -}; - -template -struct _ptr_fun1 { - - template ::REF> - struct _ { - typedef Ret return_t; - }; - - template - struct _ { - typedef const Ret return_t; - }; - - _ptr_fun1(Func func, Parm1 parm1) : - m_func(func), m_parm1(parm1) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return m_func(m_parm1(arg0)); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return m_func(m_parm1(arg0)); - } - - Func m_func; - - Parm1 m_parm1; -}; - -template -struct _ptr_fun2 { - - template ::REF> - struct _ { - typedef Ret return_t; - }; - - template - struct _ { - typedef const Ret return_t; - }; - - _ptr_fun2(Func func, Parm1 parm1,Parm2 parm2) : - m_func(func), m_parm1(parm1),m_parm2(parm2) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return m_func(m_parm1(arg0),m_parm2(arg0)); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return m_func(m_parm1(arg0),m_parm2(arg0)); - } - - Func m_func; - - Parm1 m_parm1; - Parm2 m_parm2; -}; - -template -struct _ptr_fun3 { - - template ::REF> - struct _ { - typedef Ret return_t; - }; - - template - struct _ { - typedef const Ret return_t; - }; - - _ptr_fun3(Func func, Parm1 parm1,Parm2 parm2,Parm3 parm3) : - m_func(func), m_parm1(parm1),m_parm2(parm2),m_parm3(parm3) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return m_func(m_parm1(arg0),m_parm2(arg0),m_parm3(arg0)); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return m_func(m_parm1(arg0),m_parm2(arg0),m_parm3(arg0)); - } - - Func m_func; - - Parm1 m_parm1; - Parm2 m_parm2; - Parm3 m_parm3; -}; - -template -struct _ptr_fun4 { - - template ::REF> - struct _ { - typedef Ret return_t; - }; - - template - struct _ { - typedef const Ret return_t; - }; - - _ptr_fun4(Func func, Parm1 parm1,Parm2 parm2,Parm3 parm3,Parm4 parm4) : - m_func(func), m_parm1(parm1),m_parm2(parm2),m_parm3(parm3),m_parm4(parm4) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return m_func(m_parm1(arg0),m_parm2(arg0),m_parm3(arg0),m_parm4(arg0)); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return m_func(m_parm1(arg0),m_parm2(arg0),m_parm3(arg0),m_parm4(arg0)); - } - - Func m_func; - - Parm1 m_parm1; - Parm2 m_parm2; - Parm3 m_parm3; - Parm4 m_parm4; -}; - - -template -struct _mem_fun0 { - - template - struct _ { - typedef Ret return_t; - }; - - _mem_fun0(Target target, Func func) : - m_target(target), m_func(func) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return (m_target(arg0).*m_func)(); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return (m_target(arg0).*m_func)(); - } - - Target m_target; - Func m_func; - -}; - -template -struct _mem_fun1 { - - template - struct _ { - typedef Ret return_t; - }; - - _mem_fun1(Target target, Func func, Parm1 parm1) : - m_target(target), m_func(func), m_parm1(parm1) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return (m_target(arg0).*m_func)(m_parm1(arg0)); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return (m_target(arg0).*m_func)(m_parm1(arg0)); - } - - Target m_target; - Func m_func; - - Parm1 m_parm1; -}; - -template -struct _mem_fun2 { - - template - struct _ { - typedef Ret return_t; - }; - - _mem_fun2(Target target, Func func, Parm1 parm1,Parm2 parm2) : - m_target(target), m_func(func), m_parm1(parm1),m_parm2(parm2) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return (m_target(arg0).*m_func)(m_parm1(arg0),m_parm2(arg0)); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return (m_target(arg0).*m_func)(m_parm1(arg0),m_parm2(arg0)); - } - - Target m_target; - Func m_func; - - Parm1 m_parm1; - Parm2 m_parm2; -}; - -template -struct _mem_fun3 { - - template - struct _ { - typedef Ret return_t; - }; - - _mem_fun3(Target target, Func func, Parm1 parm1,Parm2 parm2,Parm3 parm3) : - m_target(target), m_func(func), m_parm1(parm1),m_parm2(parm2),m_parm3(parm3) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return (m_target(arg0).*m_func)(m_parm1(arg0),m_parm2(arg0),m_parm3(arg0)); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return (m_target(arg0).*m_func)(m_parm1(arg0),m_parm2(arg0),m_parm3(arg0)); - } - - Target m_target; - Func m_func; - - Parm1 m_parm1; - Parm2 m_parm2; - Parm3 m_parm3; -}; - -template -struct _mem_fun4 { - - template - struct _ { - typedef Ret return_t; - }; - - _mem_fun4(Target target, Func func, Parm1 parm1,Parm2 parm2,Parm3 parm3,Parm4 parm4) : - m_target(target), m_func(func), m_parm1(parm1),m_parm2(parm2),m_parm3(parm3),m_parm4(parm4) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return (m_target(arg0).*m_func)(m_parm1(arg0),m_parm2(arg0),m_parm3(arg0),m_parm4(arg0)); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return (m_target(arg0).*m_func)(m_parm1(arg0),m_parm2(arg0),m_parm3(arg0),m_parm4(arg0)); - } - - Target m_target; - Func m_func; - - Parm1 m_parm1; - Parm2 m_parm2; - Parm3 m_parm3; - Parm4 m_parm4; -}; - - - -} - -#endif diff --git a/algo/bits/impl_entry.h b/algo/bits/impl_entry.h deleted file mode 100644 index 6751056f..00000000 --- a/algo/bits/impl_entry.h +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef ALGO_BITS_IMPL_ENTRY_H -#define ALGO_BITS_IMPL_ENTRY_H - -namespace algo { - -template -struct _entry { - - template - struct _ { - typedef Type return_t; - }; - - _entry(Type t) : m_t(t) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return m_t; - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return m_t; - } - - Type m_t; -}; - -template -struct _member { - - template - struct _ { - typedef typename traits::ref_t return_t; - }; - - _member(Target target, Type Class::*member) : - m_target(target), m_member(member) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return (m_target(arg0)).*m_member; - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return (m_target(arg0)).*m_member; - } - - Target m_target; - Type Class::*m_member; -}; - -struct _arg0 { - - template - struct _ { - typedef typename traits::ref_t return_t; - }; - - template - typename _::return_t operator () (Arg0& arg0) { - return arg0; - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return arg0; - } -}; - -// Consider implementing _on0 and _on2 as m4 macros, but there will -// never be more than 0-2, so dunno. -template -struct _on1 { - - template - struct _ { - typedef typeof(_makeT()(_makeT())) return_t; - }; - - _on1(Target target, Parm0 parm0) : - m_target(target), m_parm0(parm0) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return m_target(m_parm0(arg0)); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return m_target(m_parm0(arg0)); - } - - Target m_target; - Parm0 m_parm0; -}; - -} - -#endif - diff --git a/algo/bits/impl_lambda.h b/algo/bits/impl_lambda.h deleted file mode 100644 index fa0d0c93..00000000 --- a/algo/bits/impl_lambda.h +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef ALGO_BITS_IMPL_LAMBDA_H -#define ALGO_BITS_IMPL_LAMBDA_H - -#define ALGO_OP_BINARY( NAME, OP ) \ -template \ -struct _op_##NAME { \ - \ - template \ - struct _ { \ - typedef typename tmpl_if::REF && !traits::CONST, \ - Arg0, typename traits::b_ref_t>::result Type; \ - \ - typedef typeof(_makeT()(_makeT()) OP \ - _makeT()(_makeT())) return_t; \ - }; \ - \ - _op_##NAME(Ftor1 ftor1, Ftor2 ftor2) : m_ftor1(ftor1), m_ftor2(ftor2) {} \ - \ - template \ - typename _::return_t operator () (Arg0& arg0) { \ - return m_ftor1(arg0) OP m_ftor2(arg0); \ - } \ - \ - template \ - typename _::return_t operator () (const Arg0& arg0) { \ - return m_ftor1(arg0) OP m_ftor2(arg0); \ - } \ - \ - Ftor1 m_ftor1; \ - Ftor2 m_ftor2; \ -}; - -#define ALGO_MK_BINARY( NAME, OP ) \ -template \ -inline _wrapper<_op_##NAME > \ -operator OP (_wrapper w1, _wrapper w2) { \ - return make_wrapper(_op_##NAME(w1.m_ftor, w2.m_ftor)); \ -} - -#define ALGO_OP_UNARY( NAME, OP ) \ -template \ -struct _op_##NAME { \ - \ - template \ - struct _ { \ - typedef typename tmpl_if::REF && !traits::CONST, \ - Arg0, typename traits::b_ref_t>::result Type; \ - \ - typedef typeof( OP _makeT()(_makeT()) ) return_t; \ - }; \ - \ - _op_##NAME(Ftor1 ftor1) : m_ftor1(ftor1) {} \ - \ - template \ - typename _::return_t operator () (Arg0& arg0) { \ - return OP m_ftor1(arg0); \ - } \ - \ - template \ - typename _::return_t operator () (const Arg0& arg0) { \ - return OP m_ftor1(arg0); \ - } \ - \ - Ftor1 m_ftor1; \ -}; \ - \ -template \ -inline _wrapper<_op_##NAME > \ -operator OP (_wrapper w1) { \ - return make_wrapper(_op_##NAME(w1.m_ftor)); \ -} - -namespace algo { - -template -struct op_cast { - - template - struct _ { - typedef Ret return_t; - }; - - op_cast(Ftor ftor) : m_ftor(ftor) {} - - template - typename _::return_t operator () (Arg0& arg0) { - return m_ftor(arg0); - } - - template - typename _::return_t operator () (const Arg0& arg0) { - return m_ftor(arg0); - } - - Ftor m_ftor; -}; - -} - -#endif diff --git a/algo/bits/impl_memory.h b/algo/bits/impl_memory.h deleted file mode 100644 index 0df95520..00000000 --- a/algo/bits/impl_memory.h +++ /dev/null @@ -1,156 +0,0 @@ -// -*- 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 diff --git a/algo/call.h b/algo/call.h deleted file mode 100644 index 8b4915d3..00000000 --- a/algo/call.h +++ /dev/null @@ -1,127 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - -#ifndef ALGO_CALL_H -#define ALGO_CALL_H - -#include -#include - -namespace algo { - -template -inline _wrapper< - _ptr_fun0 > - -ptr_fun(FuncRet (*func)()) { - - return make_wrapper(_ptr_fun0< - FuncRet (*)(), FuncRet > - (func)); -} - -template -inline _wrapper< - _ptr_fun1 > - -ptr_fun(FuncRet (*func)(FuncParm1), _wrapper parm1) { - - return make_wrapper(_ptr_fun1< - FuncRet (*)(FuncParm1), FuncRet, Parm1 > - (func, parm1.m_ftor)); -} - -template -inline _wrapper< - _ptr_fun2 > - -ptr_fun(FuncRet (*func)(FuncParm1,FuncParm2), _wrapper parm1,_wrapper parm2) { - - return make_wrapper(_ptr_fun2< - FuncRet (*)(FuncParm1,FuncParm2), FuncRet, Parm1,Parm2 > - (func, parm1.m_ftor,parm2.m_ftor)); -} - -template -inline _wrapper< - _ptr_fun3 > - -ptr_fun(FuncRet (*func)(FuncParm1,FuncParm2,FuncParm3), _wrapper parm1,_wrapper parm2,_wrapper parm3) { - - return make_wrapper(_ptr_fun3< - FuncRet (*)(FuncParm1,FuncParm2,FuncParm3), FuncRet, Parm1,Parm2,Parm3 > - (func, parm1.m_ftor,parm2.m_ftor,parm3.m_ftor)); -} - -template -inline _wrapper< - _ptr_fun4 > - -ptr_fun(FuncRet (*func)(FuncParm1,FuncParm2,FuncParm3,FuncParm4), _wrapper parm1,_wrapper parm2,_wrapper parm3,_wrapper parm4) { - - return make_wrapper(_ptr_fun4< - FuncRet (*)(FuncParm1,FuncParm2,FuncParm3,FuncParm4), FuncRet, Parm1,Parm2,Parm3,Parm4 > - (func, parm1.m_ftor,parm2.m_ftor,parm3.m_ftor,parm4.m_ftor)); -} - - -template -inline _wrapper< - _mem_fun0 > - -mem_fun(_wrapper target, FuncRet (FuncClass::*func)()) { - - return make_wrapper(_mem_fun0< - Target, FuncRet (FuncClass::*)(), FuncRet > - (target.m_ftor, func)); -} - -template -inline _wrapper< - _mem_fun1 > - -mem_fun(_wrapper target, FuncRet (FuncClass::*func)(FuncParm1), _wrapper parm1) { - - return make_wrapper(_mem_fun1< - Target, FuncRet (FuncClass::*)(FuncParm1), FuncRet, Parm1 > - (target.m_ftor, func, parm1.m_ftor)); -} - -template -inline _wrapper< - _mem_fun2 > - -mem_fun(_wrapper target, FuncRet (FuncClass::*func)(FuncParm1,FuncParm2), _wrapper parm1,_wrapper parm2) { - - return make_wrapper(_mem_fun2< - Target, FuncRet (FuncClass::*)(FuncParm1,FuncParm2), FuncRet, Parm1,Parm2 > - (target.m_ftor, func, parm1.m_ftor,parm2.m_ftor)); -} - -template -inline _wrapper< - _mem_fun3 > - -mem_fun(_wrapper target, FuncRet (FuncClass::*func)(FuncParm1,FuncParm2,FuncParm3), _wrapper parm1,_wrapper parm2,_wrapper parm3) { - - return make_wrapper(_mem_fun3< - Target, FuncRet (FuncClass::*)(FuncParm1,FuncParm2,FuncParm3), FuncRet, Parm1,Parm2,Parm3 > - (target.m_ftor, func, parm1.m_ftor,parm2.m_ftor,parm3.m_ftor)); -} - -template -inline _wrapper< - _mem_fun4 > - -mem_fun(_wrapper target, FuncRet (FuncClass::*func)(FuncParm1,FuncParm2,FuncParm3,FuncParm4), _wrapper parm1,_wrapper parm2,_wrapper parm3,_wrapper parm4) { - - return make_wrapper(_mem_fun4< - Target, FuncRet (FuncClass::*)(FuncParm1,FuncParm2,FuncParm3,FuncParm4), FuncRet, Parm1,Parm2,Parm3,Parm4 > - (target.m_ftor, func, parm1.m_ftor,parm2.m_ftor,parm3.m_ftor,parm4.m_ftor)); -} - - - -} - -#endif diff --git a/algo/entry.h b/algo/entry.h deleted file mode 100644 index e81f09ac..00000000 --- a/algo/entry.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef ALGO_ENTRY_H -#define ALGO_ENTRY_H - -#include -#include - -namespace algo { - -// Use a copy of the value of 't'. -template -inline _wrapper<_entry::type_t> > -value(Type t) { - - return make_wrapper(_entry::type_t>(t)); -} - -// Use the reference to 't'. -template -inline _wrapper<_entry::ref_t> > -ref(Type& t) { - - return make_wrapper(_entry::ref_t>(t)); -} - -inline _wrapper<_arg0> -_0() { - return make_wrapper(_arg0()); -} - -// Use the reference to the member 't', in the class used -// as an argument when calling this functor. -template -inline _wrapper<_member > -member(_wrapper target, Type Class::*mem) { - - return make_wrapper(_member(target.m_ftor, mem)); -} - -template -inline _wrapper<_on1 > -on(_wrapper target, _wrapper parm0) { - - return make_wrapper(_on1(target.m_ftor, parm0.m_ftor)); -} - -} - -#endif diff --git a/algo/lambda.h b/algo/lambda.h deleted file mode 100644 index 68124913..00000000 --- a/algo/lambda.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef ALGO_LAMBDA_H -#define ALGO_LAMBDA_H - -#include -#include - -namespace algo { - -ALGO_OP_BINARY( add, + ) -ALGO_MK_BINARY( add, + ) -ALGO_OP_BINARY( sub, - ) -ALGO_MK_BINARY( sub, - ) -ALGO_OP_BINARY( mult, * ) -ALGO_MK_BINARY( mult, * ) -ALGO_OP_BINARY( div, / ) -ALGO_MK_BINARY( div, / ) -ALGO_OP_BINARY( mod, % ) -ALGO_MK_BINARY( mod, % ) -ALGO_OP_BINARY( lshift, << ) -ALGO_MK_BINARY( lshift, << ) -ALGO_OP_BINARY( rshift, >> ) -ALGO_MK_BINARY( rshift, >> ) -ALGO_OP_BINARY( and, & ) -ALGO_MK_BINARY( and, & ) -ALGO_OP_BINARY( or, | ) -ALGO_MK_BINARY( or, | ) -ALGO_OP_BINARY( xor, ^ ) -ALGO_MK_BINARY( xor, ^ ) - -ALGO_OP_BINARY( assign, = ) -ALGO_OP_BINARY( aadd, += ) -ALGO_MK_BINARY( aadd, += ) -ALGO_OP_BINARY( asub, -= ) -ALGO_MK_BINARY( asub, -= ) -ALGO_OP_BINARY( amult, *= ) -ALGO_MK_BINARY( amult, *= ) -ALGO_OP_BINARY( adiv, /= ) -ALGO_MK_BINARY( adiv, /= ) -ALGO_OP_BINARY( amod, %= ) -ALGO_MK_BINARY( amod, %= ) - -ALGO_OP_BINARY( band, && ) -ALGO_MK_BINARY( band, && ) -ALGO_OP_BINARY( bor, || ) -ALGO_MK_BINARY( bor, || ) -ALGO_OP_BINARY( beq, == ) -ALGO_MK_BINARY( beq, == ) -ALGO_OP_BINARY( bneq, != ) -ALGO_MK_BINARY( bneq, != ) -ALGO_OP_BINARY( bless, < ) -ALGO_MK_BINARY( bless, < ) -ALGO_OP_BINARY( bleq, <= ) -ALGO_MK_BINARY( bleq, <= ) -ALGO_OP_BINARY( bgrt, > ) -ALGO_MK_BINARY( bgrt, > ) -ALGO_OP_BINARY( bgeq, >= ) -ALGO_MK_BINARY( bgeq, >= ) - -ALGO_OP_UNARY( not, ! ) -ALGO_OP_UNARY( inv, ~ ) -ALGO_OP_UNARY( addr, & ) -ALGO_OP_UNARY( pntr, * ) - -template -inline _wrapper > -cast(_wrapper w1) { - return make_wrapper(op_cast(w1.m_ftor)); -} - -} - -#endif diff --git a/algo/memory.h b/algo/memory.h deleted file mode 100644 index 18808a5e..00000000 --- a/algo/memory.h +++ /dev/null @@ -1,51 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - -#ifndef ALGO_MEMORY_H -#define ALGO_MEMORY_H - -#include -#include - -namespace algo { - -template -inline _wrapper<_delete > -call_delete(_wrapper w) { - return make_wrapper(_delete(w.m_ftor)); -} - -template -inline _wrapper<_new0 > -call_new() { - return make_wrapper(_new0()); -} - -template -inline _wrapper<_new1 > -call_new(_wrapper p1) { - return make_wrapper(_new1(p1.m_ftor)); -} - -template -inline _wrapper<_new2 > -call_new(_wrapper p1,_wrapper p2) { - return make_wrapper(_new2(p1.m_ftor,p2.m_ftor)); -} - -template -inline _wrapper<_new3 > -call_new(_wrapper p1,_wrapper p2,_wrapper p3) { - return make_wrapper(_new3(p1.m_ftor,p2.m_ftor,p3.m_ftor)); -} - -template -inline _wrapper<_new4 > -call_new(_wrapper p1,_wrapper p2,_wrapper p3,_wrapper p4) { - return make_wrapper(_new4(p1.m_ftor,p2.m_ftor,p3.m_ftor,p4.m_ftor)); -} - - -} - -#endif diff --git a/algo/test_args.h b/algo/test_args.h deleted file mode 100644 index b40fdd27..00000000 --- a/algo/test_args.h +++ /dev/null @@ -1,97 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ - -#ifndef ALGO_CALL_H -#define ALGO_CALL_H - -#include - -namespace algo { - -template -struct test_args; - -struct test_args0 { - static const int result = 1; -}; - -template -struct test_args1 { - - static _one test(P1); - static _two test(...); - - static const int result = sizeof(test(_makeT())) - == 1 ? 1 : 0; -}; - -template -struct test_args2 { - - static _one test(P1,P2); - static _two test(...); - - static const int result = sizeof(test(_makeT(),_makeT())) - == 1 ? 1 : 0; -}; - -template -struct test_args3 { - - static _one test(P1,P2,P3); - static _two test(...); - - static const int result = sizeof(test(_makeT(),_makeT(),_makeT())) - == 1 ? 1 : 0; -}; - -template -struct test_args4 { - - static _one test(P1,P2,P3,P4); - static _two test(...); - - static const int result = sizeof(test(_makeT(),_makeT(),_makeT(),_makeT())) - == 1 ? 1 : 0; -}; - - - -template -struct test_args { - - static const int result = 1; -}; - -template -struct test_args { - - static const int result = test_args1::result; -}; - -template -struct test_args { - - static const int result = test_args2::result; -}; - -template -struct test_args { - - static const int result = test_args3::result; -}; - -template -struct test_args { - - static const int result = test_args4::result; -}; - - -} - -#endif diff --git a/src/display/Makefile.am b/src/display/Makefile.am index 0a53ee94..6a811299 100644 --- a/src/display/Makefile.am +++ b/src/display/Makefile.am @@ -7,6 +7,6 @@ libsub_display_a_SOURCES = \ manager.h \ manager_element.h \ window.h \ - window.cc \ + window.cc INCLUDES = -I$(srcdir) -I$(srcdir)/.. -I$(top_srcdir) diff --git a/src/display/manager.cc b/src/display/manager.cc index b9d53cae..3bbb2ac6 100644 --- a/src/display/manager.cc +++ b/src/display/manager.cc @@ -1,18 +1,15 @@ #include "config.h" #include -#include -#include -#include +#include +#include #include "canvas.h" #include "manager.h" -#include "window_base.h" +#include "window.h" namespace display { -using namespace algo; - void Manager::adjust_layout() { adjust_row(begin(), end(), 0, 0, display::Canvas::get_screen_width(), display::Canvas::get_screen_height()); @@ -43,7 +40,7 @@ Manager::adjust_row(iterator bItr, iterator eItr, int x, int y, int w, int h) { void Manager::do_update() { - std::for_each(begin(), end(), mem_fun(*mem_fun(_0(), &WindowBase::get_canvas), &Canvas::refresh)); + std::for_each(begin(), end(), std::mem_fun_ref(&ManagerElement::redraw)); Canvas::do_update(); } diff --git a/src/display/manager.h b/src/display/manager.h index 1ad92a2c..078c54a2 100644 --- a/src/display/manager.h +++ b/src/display/manager.h @@ -6,8 +6,6 @@ namespace display { -class WindowBase; - class Manager : private std::list { public: typedef std::list Base; @@ -26,14 +24,14 @@ public: NEW_ROW = 0x1 }; - Base::iterator add(WindowBase* w, int flags = 0) { return Base::insert(end(), ManagerElement(w, flags)); } + Base::iterator add(Window* w, int flags = 0) { return Base::insert(end(), ManagerElement(w, flags)); } - void adjust_layout(); - void do_update(); + void adjust_layout(); + void do_update(); private: // Functions for adjusting ranges in different directions. - void adjust_row(iterator bItr, iterator eItr, int x, int y, int w, int h); + void adjust_row(iterator bItr, iterator eItr, int x, int y, int w, int h); }; } diff --git a/src/display/manager_element.h b/src/display/manager_element.h index 03ff7809..b4941ff4 100644 --- a/src/display/manager_element.h +++ b/src/display/manager_element.h @@ -1,23 +1,26 @@ #ifndef RTORRENT_DISPLAY_MANAGER_ELEMENT_H #define RTORRENT_DISPLAY_MANAGER_ELEMENT_H -namespace display { +#include "window.h" -class WindowBase; +namespace display { class ManagerElement { public: - ManagerElement(WindowBase* w, int flags) : m_window(w), m_flags(flags) {} + ManagerElement(Window* w, int flags) : m_window(w), m_flags(flags) {} - WindowBase* get_window() { return m_window; } - void set_window(WindowBase* w) { m_window = w; } + void refresh() { m_window->refresh(); } + void redraw() { m_window->redraw(); } - int get_flags() { return m_flags; } - void set_flags(int flags) { m_flags = flags; } + Window* get_window() { return m_window; } + void set_window(Window* w) { m_window = w; } + + int get_flags() { return m_flags; } + void set_flags(int flags) { m_flags = flags; } private: - WindowBase* m_window; - int m_flags; + Window* m_window; + int m_flags; }; } diff --git a/src/display/window.cc b/src/display/window.cc index 95c3d356..189e14a1 100644 --- a/src/display/window.cc +++ b/src/display/window.cc @@ -1,7 +1,7 @@ #include "config.h" -#include "window_base.h" #include "canvas.h" +#include "window.h" namespace display { diff --git a/src/display/window.h b/src/display/window.h new file mode 100644 index 00000000..de402b21 --- /dev/null +++ b/src/display/window.h @@ -0,0 +1,31 @@ +#ifndef RTORRENT_WINDOW_BASE_H +#define RTORRENT_WINDOW_BASE_H + +namespace display { + +class Canvas; + +class Window { +public: + Window() : m_canvas(NULL) {} + virtual ~Window() {} + + Canvas* get_canvas() { return m_canvas; } + void set_canvas(Canvas* c) { m_canvas = c; } + + void refresh(); + void resize(int x, int y, int w, int h); + + virtual void redraw() = 0; + +protected: + Window(const Window&); + void operator = (const Window&); + + Canvas* m_canvas; +}; + +} + +#endif + diff --git a/src/display/window_base.h b/src/display/window_base.h deleted file mode 100644 index 3b6e889a..00000000 --- a/src/display/window_base.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef RTORRENT_WINDOW_BASE_H -#define RTORRENT_WINDOW_BASE_H - -namespace display { - -class Canvas; - -class WindowBase { -public: - WindowBase() : m_canvas(NULL) {} - virtual ~WindowBase() {} - - Canvas* get_canvas() { return m_canvas; } - void set_canvas(Canvas* c) { m_canvas = c; } - - void refresh(); - void resize(int x, int y, int w, int h); - - virtual void do_update() = 0; - -protected: - Canvas* m_canvas; -}; - -} - -#endif - diff --git a/src/rtorrent.cc b/src/rtorrent.cc index 5ada2976..22918585 100644 --- a/src/rtorrent.cc +++ b/src/rtorrent.cc @@ -1,14 +1,14 @@ #include -#include "display/window_base.h" +#include "display/window.h" #include "display/canvas.h" #include "display/manager.h" -class WindowTest : public display::WindowBase { +class WindowTest : public display::Window { public: WindowTest(const std::string& str) : m_str(str) {} - virtual void do_update() { + virtual void redraw() { if (m_canvas == NULL) return;