C++本地类引用可以传递给函数吗?
我想知道是否允许以下内容:
template < class C >
void function(C&);
void function() {
class {} local;
function(local);
}
谢谢
I would like to know if the following is allowed:
template < class C >
void function(C&);
void function() {
class {} local;
function(local);
}
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
现在是不允许的。但 C++0x 中支持它。当前标准为
14.3.1/2
也就是说,如果函数也是本地的,那就没有问题
It's not allowed right now. But it's supported in C++0x. The current Standard says at
14.3.1/2
That said, if the function is also local, there's no problem
如果您使用多态性而不是模板,这是允许的。或者,如果您不需要扩展
function
看到的接口,简单的继承就可以了。It's allowed if you use polymorphism instead of templates. Or if you don't need to extend the interface seen by
function
, simple inheritance will do.