11.07.2015 Views

Understanding C++ Expression Templates - Angelika Langer

Understanding C++ Expression Templates - Angelika Langer

Understanding C++ Expression Templates - Angelika Langer

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

13The ComponentThe base class that defines the interface common to leaves andcomposites:template class DotProduct {public:virtual ~DotProduct () {}virtual T eval() = 0;};© Copyright 1995-2000 by <strong>Angelika</strong> <strong>Langer</strong>. All Rights Reserved.http://www.<strong>Angelika</strong><strong>Langer</strong>.com(25)last update: 11/7/2005 ,21:37The Compositetemplate class CompositeDotProduct : public DotProduct {public:CompositeDotProduct (T* a, T* b, size_t dim):s(new SimpleDotProduct(a,b)),c((dim==1)?0:new CompositeDotProduct(a+1,b+1,dim-1)){}virtual ~CompositeDotProduct () { delete c; delete s; }virtual T eval(){ return (s->eval() + ((c)?c->eval():0)); }protected:SimpleDotProduct* s;CompositeDotProduct * c;};© Copyright 1995-2000 by <strong>Angelika</strong> <strong>Langer</strong>. All Rights Reserved.http://www.<strong>Angelika</strong><strong>Langer</strong>.com(26)last update: 11/7/2005 ,21:37

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!