6

私はModern C++ Designを読んでいて、typelist構造は可変個引数テンプレートで置き換え可能かもしれないという考えが浮かびました。どちらも、リストの最初のタイプとリストの残りのタイプを別々に処理するために再帰に依存しているようです。タイプリストでできることで、可変個引数テンプレートではできないことはありますか?

4

1 に答える 1

11

タイプリストを使用すると、いくつかのことが可能になります。たとえば、メタ関数の結果として可変引数パックを使用することはできません。次のように表現する方法はありません。

template <typename... Args>
struct argpack_id {
    typedef Args result;
};

タイプリストでこれを行うことができます。

一方、おそらくタイプリスト自体を次のように実装する必要があります

template <typename... Args>
struct TypeList {};
于 2013-06-13T16:37:25.133 に答える