Here is an example of how C ++ 11 works for you based on a variation template :
#include <utility> // for std::forward.
#include <iostream> // Only for std::cout and std::endl.
template <typename T, typename ...Args>
void foo(Args && ...args)
{
std::unique_ptr<T> p(new T(std::forward<Args>(args)...));
}
class Bar {
public:
Bar(int x, double y) {
std::cout << "Bar::Bar(" << x << ", " << y << ")" << std::endl;
}
};
int main()
{
foo<Bar>(12345, .12345);
}
Hope this helps. Good luck
user405725
source
share