#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.