@
misakawaque ```cpp
#include <initializer_list>
#include <iostream>
struct Test {
template <typename T> Test(const std::initializer_list<T> &) {
std::cout << "ctor w/ initializer_list" << std::endl;
}
template<typename ...T> Test(T&&...) {
std::cout << "ctor w/o initializer_list" << std::endl;
}
};
Test test() {
return {1,2,3,4};
}
int main() {
Test x{1,2,3,4};
Test y(1,2,3,4);
auto z = test();
return 0;
}
```
Output:
```
ctor w/ initializer_list
ctor w/o initializer_list
ctor w/ initializer_list
```