Skip to content
  1. Nov 12, 2009
    • 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