默认友元operator==时出现异常说明符不一致错误
解决方法
这个错误的核心是函数声明与定义的异常说明符不一致:头文件里的operator==声明没有noexcept,但你在友元声明里加了这个修饰,C++不允许这种不匹配。
直接修改你的代码,去掉noexcept即可:
friend bool operator==(playing_card const&, playing_card const&) = default;
补充说明:默认生成的operator==本身会自动带有noexcept属性(前提是类中所有成员的operator==都是noexcept的),所以不需要手动添加。保持和头文件声明完全一致就能解决问题。
内容的提问来源于stack exchange,提问作者mariacat
相关产品推荐
相关产品推荐

