【发布时间】:2020-09-15 15:53:03
【问题描述】:
我需要创建一个模板类型来使用任何容器 STL:
例子:
template <typename T>
using STL_container = ...;
并使用:
void PrintVectorOrList(STL_container<int> container) { ... }
void PrintMap(STL_container<std::string, int> container) { ... }
如何制作别名模板?
【问题讨论】:
-
How to do it better?以何种方式更好?你如何衡量某件事是否更好?为什么简单的using =不能令人满意?void PrintVectorOrList(STL_container<int> container)为什么不只是template <typename T> print_any_container(T container) { .. }? (也许要检查std::enable_if<std::is_same<T::value_type, int> >或类似的) -
在什么方面更好?请解释“更好”的含义
-
注意vector除了value_type还有分配...
-
您在寻找 C++20 概念吗?作为ranges' ones
-
您可以使用模板模板参数,但标准容器有多种不同的模板参数。如果你想写一个通用的
Print,你应该尝试使用迭代器。
标签: c++