Drake
Drake C++ Documentation
Template MetaProgramming

Drake's C++ libraries use a small amount of template metaprogramming to enable more advanced features (autodiff, symbolic computation, etc). We have tried to avoid users having to be expert template programmers.