gpt4 book ai didi

c++ - 显式默认和删除的构造函数 : is there any similar functionality available in VS2012?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:07 25 4
gpt4 key购买 nike

在 VS2012 中,“显式默认和删除特殊成员函数”功能(http://en.wikipedia.org/wiki/C++0x#Explicitly_defaulted_and_deleted_special_member_functionshttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm)尚不可用(http://msdn.microsoft.com/en-us/library/vstudio/hh567368.aspx)。是否有任何解决方法来使用此类功能,即使非常冗长?在实践中,我可以翻译这个吗

struct NonCopyable {
NonCopyable() = default;
NonCopyable(const NonCopyable&) = delete;
NonCopyable & operator=(const NonCopyable&) = delete;
};

具有相同功能但不使用defaultdelete 的东西?怎么办?

最佳答案

你是对的,这些功能还不可用。

但是,您可以这样做:

struct NonCopyable {
// ...

private:
NonCopyable(const NonCopyable&);
NonCopyable & operator=(const NonCopyable&);
};

只需将复制构造函数复制赋值运算符(无定义)声明为私有(private),您就可以使它们不可用。所以它就是你想要的效果。

这里有一个很好的答案:https://stackoverflow.com/a/2173764/1394283

关于c++ - 显式默认和删除的构造函数 : is there any similar functionality available in VS2012?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18681736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com