当设计一个可以移动但不能复制的类时,将复制构造函数声明为私有是很自然的。当只有可移动和琐碎的可复制对象作为实例成员时,允许编译器隐式地生成移动构造函数是有意义的。
但是,当同时支持VS11和G++4.7时,我发现了一个不兼容的地方:
正如你所看到的,这让我陷入了困境。我的课不能抄袭。我必须同时支持VS11和MinGW / GCC。我需要我的课是可以移动的。
我有误解什么吗,还是有办法解决这个小问题?如果生成对复制构造函数的调用,我能否使编译失败?这个问题有什么更好的解决办法吗?
发布于 2012-10-19 13:02:19
如果将其添加到源文件中
#ifdef _MSC_VER
#define noexcept
#endif您可以将其定义为GCC上的noexcept,但VC++将忽略noexcept。
https://stackoverflow.com/questions/12973815
复制相似问题