【问题标题】:Templated function that accepts a template, access the nested templates' template typename(s)接受模板的模板化函数,访问嵌套模板的模板类型名
【发布时间】:2022-07-19 20:22:07
【问题描述】:

模板模板模板模板。既然这已经超出了我们的系统,我该如何在下面的bar() 中引用T

template <template <typename T> class Foo>
void bar()
{ }

以下不起作用

// error: unknown type name 'T'
template <template <typename T> class Foo>
void bar(T x) 
{ }

我想这样做而不通过Foo,即不使用Foo::value_type(可能存在也可能不存在)。

如果重要的话,任何解决方案都需要理想地使用 C++11。

【问题讨论】:

  • 什么?当bar 有模板模板参数时,则没有TT 只是 Foos 参数的占位符,但 Foo 只是模板,而不是实例化。也许您想如何使用它的一些示例将有助于澄清
  • 你不能。因为T 的作用域之前结束了。

标签: c++ c++11 templates


【解决方案1】:
template <template <typename > class Foo, typename T>
void bar(Foo<T> x) 
{ }

【讨论】:

    猜你喜欢
    • 2018-11-26
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多