Это нельзя, initializer_list — это тонкая прослойка, позволяющая инициализировать вектор из линейного массива. Ни на что большее она не нужна.
У вас есть какая-то странность —
SearchVektor<unsigned int>
мы инициализируем из вектора
vector<int>
. Это вообще ни в какие ворота не пишется. Для данного случая вам нужно…
1.
vector<int> liste
превратить в
vector<unsigned int>
.
2. Написать конструктор, работающий из временного вектора:
SearchVektor(std::vector<T> && t )
. Такой конструктор будет очень быстрым, ибо дерёт всю информацию из t, оставляя в нём пустоту.
3. Объявить liste временным —
return SearchVektor< unsigned int> (std::move(liste));