For example, in the program below RecursiveASTVisitor sees the template argument as the integer 6. How to get the actual expression "n+n"? template<int m> struct S { }; const int n = 3; template<> struct S<n+n> { }; int main() { S<6> s; } -- Sly.