
----- Original Message ----- From: "James Porter" <porterj@alum.rit.edu> To: <boost@lists.boost.org> Sent: Monday, January 26, 2009 11:55 PM Subject: Re: [boost] Interest check: memoization
If you are interested in looking at the new code, I have updated source available here: http://www.teamboxel.com/misc/memoizer-0.2.tar.gz . There's obviously a lot of work left to do, but hopefully this will help resolve some of your questions regarding function objects.
Hi, IMO the main issue is that we need to declare a variable, and in order to share this variable we need to either use a global variable or pass it as parameter to the inner functions. What do you think about defining a singleton type avoiding the need of this variable declaration, as do Boost.Flyweith? what about adding a _singleton variant typedef memoizer_singleton<doit> doit_memo; and use directly the type doit_memo as follows doit_memo(5.0,7); Or class factorial : public recursive_memoizer_singleton<factorial,int(int)>{ public: int call(int n) { if(n<=1) return 1; else return n*memo(n-1); } }; and use factorial(5); // 5! In this way memoizer will be a generalization of the Flyweith. Of course this do not precludes to provide the non_singleton versions. Thanks, Vicente