typedef 到模板类型
以下有什么问题吗?
typedef boost::shared_ptr SharedPtr;
GCC 给出以下错误:
ISO C++ 禁止声明无类型的“shared_ptr”
What's wrong with the following?
typedef boost::shared_ptr SharedPtr;
GCC gives the following error:
ISO C++ forbids declaration of ‘shared_ptr’ with no type
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
C++(还)没有“模板类型定义”,您可以像这样“重命名”模板。这是 C++0x 中添加的一个功能,其中这样的“typedef”称为“别名模板”。
目前最简单的解决方法是使用带有嵌套 typedef 的类模板:
C++ doesn't (yet) have "template typedefs" where you can "rename" a template like this. This is a feature being added in C++0x, where such a "typedef" is called an "alias template."
The simplest workaround that works today is to use a class template with a nested typedef:
C++11:
或者您可以使用 C++11 内置的shared_ptr:
C++11:
Or you could use shared_ptr built into C++11: