如何通过 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>
我希望调用第二个版本。但是StringList
并std::vector<std::string>
调用第一个版本。使用using
给出相同的行为。
如果这不是可能的,那么一个合理的解决方法的想法会很好。
当然扩展std::vector<std::string>
会有所帮助,但由于这根本不是一个好主意,我不知道如何区分它们。