C ++ 17 поддерживает
template argument deduction for class templates
,Посмотри пожалуйста
www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0091r3.html за
подробная справочная информация.
Однако приведенный ниже код не работает должным образом;
#include <utility>
template<typename T>
struct A
{
T x;
};
int main()
{
auto p = std::pair{ 1, 2 }; // ok, as expected.
auto a = A{ 0 };
//
// error : no viable constructor or deduction guide
// for deduction of template arguments of 'A'
//
}
Мой компилятор Clang 5.0 с -std=c++1z
,
Почему template argument deduction for class templates
не работает на простой структуре?
Задача ещё не решена.
Других решений пока нет …