- 425 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 16:27:09 ]
- $cat foo.cxx
#include <iostream> #include <boost/progress.hpp> #include <boost/shared_ptr.hpp> class MyClass { public: virtual void f(){std::cerr << "MyClass f!" << std::endl;}; MyClass(){std::cerr << "MyClass Constructor!" << std::endl;}; virtual ~MyClass(){std::cerr << "MyClass Destructor!" << std::endl;}; }; void the_function(boost::shared_ptr<MyClass> p){ p->f(); } void the_function_cr(boost::shared_ptr<MyClass> const& p){ p->f(); } int main(){ const int M=0xffff, N=0xf; #define FOO(f) { \ boost::progress_timer t; \ boost::shared_ptr<MyClass> po(new MyClass); \ for( unsigned long i=0; i<M; ++i ) \ for( unsigned long j=0; j<N; ++j ) \ (f)(po); \ } FOO(the_function); FOO(the_function_cr); } $g++ foo.cxx $./a.out 2>/dev/null 0.85 s 0.81 s 誤差じゃね?
|

|