【发布时间】:2012-03-04 05:18:11
【问题描述】:
我一直在阅读一些关于是否允许抛出移动构造函数/赋值的相互矛盾的文章。
所以想问一下最终的C++11标准中是否允许move构造函数/赋值?
【问题讨论】:
-
我在标准中没有看到任何关于不允许抛出移动构造函数的内容,但我确实看到“类 X 的隐式声明的移动构造函数将具有
X::X(X&&)的形式”,我在里面看不到noexcept。 -
在最终草案中,我没有看到为任何函数声明的
noexcept... -
@ronag:你确定你在找吗?因为我打开 N3337 只搜索“
noexcept”,立即得到了某个类的swap函数。 -
@NicolBolas:我也这样做了,我发现的唯一地方是 declval,N3092。你从哪里得到 N3337?
-
@ronag:来自网站上今年的pre-Kona mailing。它基本上是 C++11 的免费副本,错别字已更正。此外,N3092 是古老的。那是从 2010 年开始的;我认为标准中还没有
noexcept。或者如果他们这样做了,它仍然是新的,并且没有被外包给标准库。