Сохранённый текст
#include<utility>
template <class _T>
struct B {
_T a;
_T b;
B(std::initializer_list<_T>&& aa){auto i=aa.begin(); a=*i; i++; b=*i;}
};
template <class _T>
void bar(const B<_T>& a) {}
template <class _T>
struct A {
template <class __T>
void foo(__T&& a) {
bar(std::forward<__T>(a));
}
template <class __T>
void foo(std::initializer_list<__T>&& a) {
bar(B<__T>(std::move(a)));
}
};
int main() {
A<int> a;
a.foo({1, 3});
}