1

.cpp別のファイルでクラス テンプレートの可変メンバ関数テンプレートをインスタンス化するにはどうすればよいですか? 上記のクラス テンプレートが一連のファイル内にあるとします。a.hppインターフェイスの定義、a_impl.hpp実装、およびa.cppインスタンス化を使用して、チェーン内の前の各前のものを順番に含めますが、最初のものだけがクラスのユーザーに表示されます (開発者)。

空のパラメーター パックの場合に特に関心があります。

4

1 に答える 1

2
template <class A>
struct AA
{
  template<class Z, class... Q>
  void aa(double, Q... q) {};
};

template void AA<int>::aa<char>(double);
template void AA<int>::aa<char, char*>(double, char*);
template void AA<int>::aa<char, char*, char**>(double, char*, char**);

セットアップでは、「開発者」のみがインスタンス化できることに注意してください (インスタンス化できるようにするには、実装を確認する必要があります)。

于 2013-05-22T14:22:40.053 に答える