gpt4 book ai didi

c++ - C++模板模板参数的正确使用

转载 作者:可可西里 更新时间:2023-11-01 14:59:14 25 4
gpt4 key购买 nike

我在使用模板模板参数时遇到了一些麻烦。这是一个非常简单的例子:

template <typename T> 
struct Foo {
T t;
};

template <template <class X> class T>
struct Bar {
T<X> data;
X x;
};

int main()
{
Bar<Foo<int>> a;
}

编译器(g++(Ubuntu 4.8.2-19ubuntu1)4.8.2)报如下错误:

main.cpp:8:5: error: ‘X’ was not declared in this scope
T<X> data;
^

main.cpp:8:6: error: template argument 1 is invalid
T<X> data;
^

知道哪里出了问题吗?

最佳答案

So I would like so make use of something like Bar<Foo<>>

template <typename T = int> 
struct Foo {
T t;
};

template <typename T>
struct Baz {
T t;
};

template <typename T>
struct Bar;

template <template <typename> class T, typename X>
struct Bar<T<X>> {
T<X> data;
X x;
};

int main()
{
Bar<Foo<>> a;
Bar<Baz<float>> b;
}

关于c++ - C++模板模板参数的正确使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27013413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com