Сложности, возникающие здесь, в основном такие же, как и в случае унаследованного конструктора. Фейсал Вали (один из других разработчиков метода вывода аргументов шаблонов классов) имеет конкретный план, как заставить такие случаи работать, но комитет 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.