2016-08-02 4 views
1

私はtypedefの使用法を知っていますが、わかりませんいつ、どのようにを使用するthis_typeを使用しますか?テンプレートクラス自体のtypedef

template<typename T> 
class Foo 
{ 
    public: 
     typedef Foo<T> this_type; 
     // ... 
}; 

その使用法やリンクの例も同様に役立ちます。

+4

AFAIKこれは意味がありません。なぜなら、そのテンプレート内のプレーンな 'Foo'は同じ結果を返すだけなので、意味がありません。あなたはどこに来ましたか? –

+0

@fatih私は会社のコードで見つけました。他のものがFooクラスの中にありますが、私は明白な理由でここに貼り付けません。特定の情報が必要な場合は、私はあなたに伝えることができます。 –

答えて

1

非常に狭いユースケースがあります。これは、コードベースよりも明確で一貫性があるためです。 this_typeは、(何らかの理由で)コンテキストが不足している可能性があるコードのFoo<T>よりも優れた説明です。このように、特定の技術的要件よりも個人的または企業的なスタイルに似ています。しかし、名前Fooが既に適用可能であることに言及する価値があります。

もう1つのケースは、Foo<T>と一部のFoo<U>の区別ではっきりしているかもしれませんが、やはり使用が制限されています(コンバーターの変換など)。

関連する問題