我对 C++11 很陌生,'仍然在尝试扩展。我发现auto
关键字非常方便,尤其是在处理模板变量时。这意味着给定
template<typename ... Types>
struct Foo
{
};
template<typename ... Types>
Foo<Types ...>* create( Types ... types ... )
{
return new Foo<Types ...>;
}
我现在可以做任务了
auto t1 = create( 'a' , 42 , true , 1.234 , "str" );
代替
Foo<char, int, bool, double , const char*>* t2 = create( 'a' , 42 , true , 1.234 , "str" );
现在的问题是,因为t1
是一个指针,我想shared_ptr
按照 Herb Sutter 的建议将它保存在一个指针中。因此,我想将 的返回值存储create()
在 ashared_ptr
而不必命名模板参数类型,如t2
.