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

2024-12-19


1980. Equivalent but not functionally-equivalent redeclarations

Section: 13.7.8  [temp.alias]     Status: drafting     Submitter: Richard Smith     Date: 2014-08-04

In an example like

  template<typename T, typename U> using X = T;
  template<typename T> X<void, typename T::type> f();
  template<typename T> X<void, typename T::other> f();

it appears that the second declaration of f is a redeclaration of the first but distinguishable by SFINAE, i.e., equivalent but not functionally equivalent.

Notes from the November, 2014 meeting:

CWG felt that these two declarations should not be equivalent.