How to expand/”preprocess” C++ template code

One way (compiler-dependent) is to use dumping after each compiler step. I wrote a small program:

template<class T>
T square(T n)
{
    return n * n;
}

int main(void)
{
    square<int>(3);
    square<float>(3.0);
}

then:

g++ -fdump-rtl-all test.cc

This get me a bunch of files. Take a look at (in my case) test.cc.218.dfinish:

;; Function int main() (main)
;; Function T square(T) [with T = int] (_Z6squareIiET_S0_)
;; Function T square(T) [with T = float] (_Z6squareIfET_S0_)

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)