C++ 模板模板参数

例子

有时我们希望将模板类型传递给模板而不固定其值。这就是为模板模板参数创建的。非常简单的模板模板参数示例:

template <class T>

struct Tag1 { };

template <class T>

struct Tag2 { };

template <template <class> class Tag>

struct IntTag {

   typedef Tag<int> type;

};

int main() {

   IntTag<Tag1>::type t;

}

C ++ 11
#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

回到顶部