Skip to content
Snippets Groups Projects
  • Richard Smith's avatar
    2faed1c4
    [c++17] Implement P0522R0 as written. This allows a template template argument · 2faed1c4
    Richard Smith authored
    to be specified for a template template parameter whenever the parameter is at
    least as specialized as the argument (when there's an obvious and correct
    mapping from uses of the parameter to uses of the argument). For example, a
    template with more parameters can be passed to a template template parameter
    with fewer, if those trailing parameters have default arguments.
    
    This is disabled by default, despite being a DR resolution, as it's fairly
    broken in its current state: there are no partial ordering rules to cope with
    template template parameters that have different parameter lists, meaning that
    code that attempts to decompose template-ids based on arity can hit unavoidable
    ambiguity issues.
    
    The diagnostics produced on a non-matching argument are also pretty bad right
    now, but I aim to improve them in a subsequent commit.
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@290792 91177308-0d34-0410-b5e6-96231b3b80d8
    2faed1c4
    History
    [c++17] Implement P0522R0 as written. This allows a template template argument
    Richard Smith authored
    to be specified for a template template parameter whenever the parameter is at
    least as specialized as the argument (when there's an obvious and correct
    mapping from uses of the parameter to uses of the argument). For example, a
    template with more parameters can be passed to a template template parameter
    with fewer, if those trailing parameters have default arguments.
    
    This is disabled by default, despite being a DR resolution, as it's fairly
    broken in its current state: there are no partial ordering rules to cope with
    template template parameters that have different parameter lists, meaning that
    code that attempts to decompose template-ids based on arity can hit unavoidable
    ambiguity issues.
    
    The diagnostics produced on a non-matching argument are also pretty bad right
    now, but I aim to improve them in a subsequent commit.
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@290792 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.