This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 110c. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2023-02-07


1794. template keyword and alias templates

Section: 13.3  [temp.names]     Status: C++17     Submitter: Jonathan Caves     Date: 2013-10-04

[Adopted at the February/March, 2017 meeting.]

The current wording of 13.3 [temp.names] paragraph 5 is:

A name prefixed by the keyword template shall be a template-id or the name shall refer to a class template.

Presumably this should also allow template before alias templates. For example,

  template<template<typename> class Template>
  struct Internal {
          template<typename Arg>
          using Bind = Template<Arg>;
  };

  template<template<typename> class Template, typename Arg>
  using Instantiate = Template<Arg>;

  template<template<typename> class Template, typename Argument>
  using Bind = Instantiate<Internal<Template>::template Bind, Argument>;

Proposed resolution (March, 2017):

This issue is resolved by the resolution of issue 1710.