#include <tuple>
class Foo {
public:
    Foo(int i, double d, const char* str) { }
};
template<class T, class... CtorArgTypes>
class ObjectMaker {
public:
    ObjectMaker(CtorArgTypes... ctorArgs) : m_ctorArgs(ctorArgs...)
    {
    }
    Foo* create()
    {
        //What do I do here?
    }
private:
    std::tuple<CtorArgTypes...> m_ctorArgs;
};
int main(int, char**)
{
    ObjectMaker<Foo, int, double, const char*> fooMaker(42, 5.3, "Hello");
    Foo* myFoo = fooMaker.create();     //this should do new Foo(42, 5.3, "Hello");
}
基本上,我希望类ObjectMaker保存将传递给构造函数的参数Foo并在调用时使用它们ObjectMaker::create()。我想不通的是如何从tuple的构造函数中获取值Foo?