Skip to content
  1. Nov 12, 2009
    • Bruno Cardoso Lopes's avatar
      A real solution for the first part of PR5445 · 626d49f6
      Bruno Cardoso Lopes authored
      llvm-svn: 86895
      626d49f6
    • Douglas Gregor's avatar
      Template argument deduction for template template parameters. This · adee3e3b
      Douglas Gregor authored
      permits, among other things, ripping apart and reconstructing
      templates via partial specialization:
      
        template<typename T> 
        struct DeepRemoveConst { typedef T type; };
      
        template<typename T>
        struct DeepRemoveConst<const T> {
          typedef typename DeepRemoveConst<T>::type type;
        };
      
        template<template<typename> class TT, typename T>
        struct DeepRemoveConst<TT<T> > {
          typedef TT<typename DeepRemoveConst<T>::type> type;
        };
      
      Also, fix a longstanding thinko in the code handling partial ordering
      of class template partial specializations. We were performing the
      second deduction without clearing out the results of the first
      deduction. It's amazing we got through so much code with such a
      horrendous error :(
      
      llvm-svn: 86893
      adee3e3b
  2. Nov 11, 2009
Loading