This document proposes a technique for applying aspect-oriented programming to C++ templates using program transformation. It discusses the challenges of combining aspects with templates, as templates can be instantiated in multiple places but an aspect may only be desired for a subset. The technique uses a source-to-source preprocessor and program transformation system to weave advice into template implementations. It presents an example applying the technique to a scientific computing library to modularize crosscutting concerns in template-based code.