Сложности, возникающие здесь, в основном такие же, как и в случае унаследованного конструктора. Фейсал Вали (один из других разработчиков метода вывода аргументов шаблонов классов) имеет конкретный план, как заставить такие случаи работать, но комитет C ++ еще не обсуждал это расширение.

#include <utility>

template<class T1, class T2>
struct mypair : std::pair<T1, T2>
{ using std::pair<T1, T2>::pair; };

int main()
{
    (void)std::pair(2, 3); // It works
    (void)mypair(2, 3);    // It doesn't work
}

орошо сформировано?

Можно ли вывести аргументы шаблона класса во втором случае, если конструкторы наследуются? Являются конструкторамиstd::pair участие в создании неявных руководств по вычетам дляmypair?

Мой компилятор g ++ 7.2.0.

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

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