#include <iostream>
// XXX: Kompilować w trybie kompatybilności z C++17 lub nowszym
template<typename T>
class my_vector {
public:
// Dokonaj wyboru jednego z przykładów, odkomentowując go
/*
my_vector(std::initializer_list<T> il) {
std::cout << "my_vector(initializer_list) = ";
for (const auto& e: il) {
std::cout << e << ' ';
}
std::cout << '\n';
}
*/
template<typename ... Args>
my_vector(Args&&... args) {
std::cout << "my_vector(Args&&) = ";
const char * sep = "";
(((std::cout << sep << std::forward<Args>(args)), sep = " "), ...);
std::cout << '\n';
}
};
int main() {
my_vector<int> vec = {1, 2, 3, 4, 5, 6};
}
Oczywiście z tym foldingiem to bym nie przesadzał. Tu to trochę armata na wróble...