variadic template constructor matches better than copy constructor
#include <iostream>
#include <string>
template <typename T>
struct MyClass {
T value;
template <typename... Args>
MyClass(Args&&... args) : value(std::forward<Args>(args)...) {
std::cout << "Variadic template constructor" << std::endl;
}
MyClass(const MyClass& other) : value(other.value) {
std::cout << "Copy constructor" << std::endl;
}
};
int main() {
MyClass<int> obj1(42); // Variadic template constructor
MyClass<int> obj2 = obj1; // Variadic template constructor
return 0;
}