テンプレート引数を typedef で区別するにはどうすればよいですか?
状況: 複数のタイプのリスト (ベクトルとして実装) があります。そして、別の方法で処理したい特別な StringList があります。
typedef std::vector<std::string> StringList;
inline void f(StringList const& list) {
...
}
template <typenamte T>
inline void f(std::vector<T> const& list) {
...
}
変数が定義されている場合StringList
は、最初のバージョンを呼び出したいのですが、変数が定義されている場合std::vector<std::string>
は、2 番目のバージョンを呼び出したいと思います。しかし、最初のバージョンStringList
をstd::vector<std::string>
呼び出します。を使用using
すると、同じ動作が得られます。
それが不可能な場合は、合理的な回避策のアイデアがあればよいでしょう。
もちろん、拡張std::vector<std::string>
は役に立ちますが、それはまったく良い考えではないため、それらを区別する方法がわかりません。