C++可以将本地类引用传递给函数吗?

Any*_*orn 4 c++ local-class

我想知道是否允许以下​​内容:

template < class C >
void function(C&);

void function() {
  class {} local;
  function(local);
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Joh*_*itb 6

现在不允许这样做.但它在C++ 0x中得到支持.目前的标准是在14.3.1/2

本地类型,没有链接的类型,未命名的类型或从这些类型中的任何类型复合的类型不应该用作模板类型参数的模板参数.

也就是说,如果函数也是本地的,那就没问题了

void f() {
  class L {} local;
  struct C {
    static void function(L &l) {
      // ...
    }
  };
  C::function(local);
}
Run Code Online (Sandbox Code Playgroud)