私は 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" );
ここでの問題は、ポインターが Herb Sutter が推奨t1
するように保持したいということです。したがって、 のようにテンプレート引数の型に名前を付けずに、 の戻り値をashared_ptr
に格納したいと思います。create()
shared_ptr
t2