C++中的模板模板参数。使用实例

Template template parameters in c++. Using instance

我实例化了一个模板并想将该实例用于其他模板

template <typename I> class A
{
  I name;
  public:
  A(I n){
    name = n;
  }

  void show() const
  {
   cout << name << "\t";
  }
};

template <template<typename I> class V> class B {
V origen;
public:
B (V o){
   origen = o;
}   

};

auto main() -> int
{
      cout << "[code.cpp]" << endl;

    A<int> a1(1);
    a1.show();
    B<A> b1(a1);
    return 0;
}

这个话题我看到的是平时不怎么用,用的时候又不是这种形式,不明白为什么。 我尝试使用常量。不工作

V origen;void B (V o) 无效,因为 V 不是类型。

也许你想要

template <typename T> class B;

template <template<typename> class V, typename T>
class B<V<T>>
{
    V<T> origen;
public:
    B (V<T> o) : origen(o) {}
};

然后

A<int> a1(1);
B<A<int>> b1(a1);

或者也许

template <template<typename> class V>
class B
{
    V<int> origen;
public:
    B (V<int> o) : origen(o) {}   
};

然后

A<int> a1(1);
B<A> b1(a1);