如何通过模板使用本地类?
GCC 似乎不赞成用本地类实例化模板:
template <typename T>
void f(T);
void g()
{
struct s {};
f(s()); // error: no matching function for call to 'f(g()::s)'
}
VC 不会抱怨。
应该怎么做呢?
GCC doesn't seem to approve of instanciating templates with local classes:
template <typename T>
void f(T);
void g()
{
struct s {};
f(s()); // error: no matching function for call to 'f(g()::s)'
}
VC doesn't complain.
How should it be done?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 C++03 中这是不可能的,C++0x 将 取消该限制。
C++03,§14.3.1/2:
In C++03 it can't be done, C++0x will lift that restriction though.
C++03, §14.3.1/2: