テンプレート引数を 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>は役に立ちますが、それはまったく良い考えではないため、それらを区別する方法がわかりません。