Здравствуйте, reversecode, Вы писали:
NB>>наличие вариадика в шаблоне не означает существования конструктора для него.
NB>>собственно в примере этого конструктора и нет.
NB>>ну, по крайней мере я так думаю
под примером я имел в виду тот что в начальном сообщении.
в том что в пропосале, конструктор присутствует.
R>по примеру я как раз таки и решил что это конструтор
R>судя по этому примеру как раз для конструктора container(Iter beg, Iter end)
R>и выводят тип, точнее по конструктору выводят Т
R>уточнив специализацию шаблоном
R>template<class Iter>
R>container(Iter b, Iter e) -> container<typename std::iterator_traits<Iter>::value_type>;
здесь все верно.
R>а в примере std::visit как раз через вариадик конструктор набиваются ламбды
R>и что бы этот вариадик конструктор сработал и уточняют правилом вывода
чуть упрощу.
struct t1 {};
struct t2 {};
struct test : t1, t2 {};
test x = { t1(), t2() };
конструктора нет, однако х инициализируется.