Minimal code where the bug is reproducible (http://ideone.com/tTVorC): #include <iostream> template <typename T> class Test { public: template <typename A> using Wrapper = std::string; template <template <class> class C> void func(const C<T>& t) { t; return; } void test() { std::string sss; Wrapper<char> www; func((const Wrapper<char>&)sss); } }; int main(int argc, char *argv[]) { Test<char> ttt; ttt.test(); }
This is fixed for 4.9.0.