为什么"typedef int (*pf)() throw(int);"这句话不符合C++异常规范?

samba4s 2012-03-21 10:23:02
C++标准文档上面说:

typedef int (*pf)() throw(int); // ill-formed
—end example] A type denoted in an exception-specification shall not denote an incomplete type. A type
denoted in an exception-specification shall not denote a pointer or reference to an incomplete type, other
than void*, const void*, volatile void*, or const volatile void*.

我没有看明白为什么这句话是ill formed.
我在vc2010的编译器里面,发现编译时有一个warning:
warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)

这到底是什么意思呢?
...全文
132 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
teleinfor 2012-03-21
  • 打赏
  • 举报
回复
这个定义太NB了。。。。直接连异常都考虑到了。。。可惜啊。。。语言需要重新设计哦。
pengzhixi 2012-03-21
  • 打赏
  • 举报
回复
An exception-specification shall not appear in a typedef declaration.看标准说的这句吧

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧