Вывод аргумента шаблона класса не работает с шаблоном псевдонима

рассмотрите код, вставленный ниже. Я определил очень простой класс, для которого компилятор генерирует неявное руководство по выводу, чтобы его можно было создать без явных аргументов шаблона. Тем не менее, вычет аргумента шаблонане работать для создания объекта из простого шаблона псевдонима, который только перенаправляет непосредственно в целевой класс:

template< typename A, typename B >
struct Foo {
    Foo( A const &a, B const &b )
            : a_(a), b_(b)
    { }

    A a_;
    B b_;
};

template< typename A, typename B >
using Bar = Foo<A, B>;

auto foobar() {
    Foo r{1, 2};
    Bar s{3, 4};
    // ../src/geo/vector_test_unit.cpp: In function 'auto foobar()':
    // ../src/geo/vector_test_unit.cpp:16:6: error: missing template arguments before 's'
    //   Bar s{3, 4};
    //       ^
    return 1;
}

Как видно из приведенного выше комментария к коду, g ++ выдает мне сообщение об ошибке использования псевдонима шаблона без аргументов шаблона. Я надеялся в таком случае, что вычет аргумента шаблона будет передан.

Итак, мой вопрос: Является ли это экспресс-дизайном текущей редакции предложения для вычета аргументов шаблона класса? Или это незаконченная функция или ошибка в текущей реализации функции g ++? И это было бы больше вопросом для авторов предложения или для комитета C ++ ISO, но если кто-то из них увидит это: было бы желательно, чтобы окончательная формулировка функции включала включение шаблонов псевдонимов, таких как этот, чтобы есть неявные направляющие для них?

Я могу понять, что, поскольку шаблоны псевдонимов могут иметь любые параметры шаблона, компилятору не всегда удастся успешно определить аргументы шаблона целевого класса, но в таком случае я ожидал бы, что компилятор сможет в так же, как это может напрямую для целевого класса.

Я строю с gcc, построенным из головы только несколько дней назад, используя--std=c++1z, Полная информация о версии:gcc version 7.0.0 20161201 (experimental) (Homebrew gcc HEAD- --with-jit)

Ответы на вопрос(2)

Ваш ответ на вопрос