C++ 模板模板参数
例子
有时我们希望将模板类型传递给模板而不固定其值。这就是为模板模板参数创建的。非常简单的模板模板参数示例:
template <class T>C ++ 11struct Tag1 { };
template <class T>
struct Tag2 { };
template <template <class> class Tag>
struct IntTag {
typedef Tag<int> type;
};
int main() {
IntTag<Tag1>::type t;
}
#include <vector>#include <iostream>
template <class T, template <class...> class C, class U>
C<T> cast_all(const C<U> &c) {
C<T> result(c.begin(), c.end());
return result;
}
int main() {
std::vector<float> vf = {1.2, 2.6, 3.7};
auto vi = cast_all<int>(vf);
for(auto &&i: vi) {
std::cout << i << std::endl;
}
}
以上是 C++ 模板模板参数 的全部内容, 来源链接: utcz.com/z/325139.html