Bug 1542132
| Summary: | ambiguous overload for 'operator!=' for 'std::error_code's | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Marek Skalický <mskalick> | ||||
| Component: | gcc | Assignee: | Jonathan Wakely <jwakely> | ||||
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | urgent | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | rawhide | CC: | aoliva, davejohansen, fweimer, jakub, jwakely, law, mpolacek | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2018-02-12 11:43:14 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
|
Description
Marek Skalický
2018-02-05 16:12:05 UTC
Any idea how to workaround this? Reduced:
#include <system_error>
namespace asio { namespace error {
struct basic_errors { };
std::error_code make_error_code(basic_errors);
} }
namespace std {
template<> struct is_error_code_enum<asio::error::basic_errors> : true_type { };
}
template<typename> struct Y { };
template<typename T>
struct X : Y<T> {
void f()
{
std::error_code ec;
asio::error::basic_errors err;
ec == err;
}
};
This is the same GCC bug as Bug 1542254 and I don't know a workaround.
This has now been fixed upstream, so should get fixed next time GCC is updated in rawhide. Jonathan, thanks for solving this problem. It is fixed in gcc-8.0.1-0.13.fc28. |