【问题标题】:How to use local classes with templates?如何使用带有模板的本地类?
【发布时间】:2010-07-03 21:18:02
【问题描述】:

GCC 似乎不赞成使用本地类实例化模板:

template <typename T>
void f(T);

void g()
{
    struct s {};

    f(s()); // error: no matching function for call to 'f(g()::s)'
}

VC 没有抱怨。

应该怎么做?

【问题讨论】:

    标签: c++ templates gcc local-class


    【解决方案1】:

    在 C++03 中无法做到,但 C++0x 将 lift 限制。

    C++03,§14.3.1/2

    本地类型、无链接类型、未命名类型或由这些类型中的任何一种复合而成的类型不得用作模板类型参数的模板参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      相关资源
      最近更新 更多