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.

16A Simplified OO ImplementationDotProductevaluate()SimpleProductevaluate()CompositeProductevaluate()a * bSimpleProduct().evaluate()+ CompositeProduct().evaluate()© Copyright 1995-2000 by <strong>Angelika</strong> <strong>Langer</strong>. All Rights Reserved.http://www.<strong>Angelika</strong><strong>Langer</strong>.com(31)last update: 11/7/2005 ,21:37Implementation Using <strong>Templates</strong>! The template solution does not need a base class.– Eliminate the Component base class.! Implement the Composite as a class template usingstructural information as template arguments.– The dimension of the vector becomes a non-type templateargument of the Composite.! Implement the Leaf as a specialization of the Composite.– The SimpleDotProduct is a specialization of theCompositeDotProduct for dimension N = 1.! Instead of run time recursion use compile time recursion.– Replace the recursive invocation of the virtual evaluation functionby recursive template instantiation of a static evaluation function.© Copyright 1995-2000 by <strong>Angelika</strong> <strong>Langer</strong>. All Rights Reserved.http://www.<strong>Angelika</strong><strong>Langer</strong>.com(32)last update: 11/7/2005 ,21:37

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

Saved successfully!

Ooh no, something went wrong!